我以前从未使用过JSON,所以我对它的语法不熟悉。
目前,我有多个包含不同数据的数组。
我想创建一个JSON对象,其中包含多个数组,每个数组包含几段数据。
例如
一个称为汽车的对象,包含多个数组,每个数组用于不同的汽车品牌。在每个数组中,将是汽车的模型以及其他一些类型的数据,例如门的数量(这只是一个虚构的例子,并不重要)。
如果有人用示例解释语法,将不胜感激。
在最外层,JSON对象以a开头,以a {结束}。
{
}
样本数据:
{ "cars": { "Nissan": [ {"model":"Sentra", "doors":4}, {"model":"Maxima", "doors":4}, {"model":"Skyline", "doors":2} ], "Ford": [ {"model":"Taurus", "doors":4}, {"model":"Escort", "doors":4} ] } }
如果将JSON分配给名为data的变量,则对其进行访问将类似于以下内容:
data.cars['Nissan'][0].model // Sentra data.cars['Nissan'][1].model // Maxima data.cars['Nissan'][2].doors // 2 for (var make in data.cars) { for (var i = 0; i < data.cars[make].length; i++) { var model = data.cars[make][i].model; var doors = data.cars[make][i].doors; alert(make + ', ' + model + ', ' + doors); } }
另一种方法(对汽车模型使用关联数组而不是索引数组):
{ "cars": { "Nissan": { "Sentra": {"doors":4, "transmission":"automatic"}, "Maxima": {"doors":4, "transmission":"automatic"} }, "Ford": { "Taurus": {"doors":4, "transmission":"automatic"}, "Escort": {"doors":4, "transmission":"automatic"} } } } data.cars['Nissan']['Sentra'].doors // 4 data.cars['Nissan']['Maxima'].doors // 4 data.cars['Nissan']['Maxima'].transmission // automatic for (var make in data.cars) { for (var model in data.cars[make]) { var doors = data.cars[make][model].doors; alert(make + ', ' + model + ', ' + doors); } }
编辑:
校正:JSON对象开始于{并用端部},但它也适用于具有JSON阵列(最外层),与开始[和有端]。
[
]
此外,原始JSON数据中的重大语法错误也已得到纠正:JSON对象中的所有键名都必须用双引号引起来,并且JSON对象或JSON数组中的所有字符串值也必须用双引号引起来。
看到: