在最外层,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 // Sentradata.cars['Nissan'][1].model // Maximadata.cars['Nissan'][2].doors // 2for (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 // 4data.cars['Nissan']['Maxima'].doors // 4data.cars['Nissan']['Maxima'].transmission // automaticfor (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数组中的所有字符串值也必须用双引号引起来。
看到:
- JSON规范
- JSONLint-JSON验证器



