使用JavaScript进行JSON解析的最佳方法
可能的重复: JavaScript对象的长度(即关联数组)
我有以下格式的JSON
[{"student":{"name" : "ABCD",
"age":8,
}
"user":{ "firstName":"ABCD",
"age": 9,
}
},
{"student":{"name" : "XCYS",
"age":10,
}
"user":{ "firstName":"GGG",
"age": 11,
}
},]
我尝试使用(data.student[i].length)
,这不起作用(只是看看对象的长度),我也尝试过(data.user[i])
无济于事。
我基本上很困惑我如何获得JSON中的一个对象的长度以及如何有效地显示它。 我怎样才能做到这一点?
您的问题中的内容不会被解析为有效的JSON,因为所有密钥都需要用引号包裹(所以您应该有"age": 11
而不是age: 11
)。 对象中的所有键/值对应以逗号分隔(所以您应该有"firstName": "GGG", "age": 11
而不是"firstName": "GGG" "age": 11
。外部数组中的尾随逗号。
只要你有有效的JSON,你应该能够在比IE7更新的浏览器中使用JSON.parse(data)
来将字符串转换为实际的对象。 一旦解析成一个对象,你可以使用:
var data = "your JSON string";
var object = JSON.parse(data);
console.log(object.length); // the number of objects in the array
console.log(object[0].student.name; // the name of the first student
如果您支持IE7及更高版本的浏览器,请查看Douglas Crockford的JSON填充:https://github.com/douglascrockford/JSON-js
请在一些网站中验证您的json字符串http://jsonformatter.curiousconcept.com/
由于JavaScript是一种脚本语言,因此它会解释脚本并在它出现语法错误时终止解释。 尝试在浏览器中使用一些JavaScript控制台
IE - 开发者工具
Firefox - 萤火虫插件
假设你拥有的实际对象是有效的(不会丢失逗号等),并且你正确地解析了字符串,你试图访问带有数组索引的对象,反之亦然。 让我们从头开始重建对象:
首先,你有一个数组。
[]
您可以使用data[0]
访问数组中的第一个元素。 第一个元素是一个对象。
[
{}
]
该对象有两个键,它们都保存对象。
[
{
"student": {},
"user": {}
}
]
您使用data[0].student
访问student
密钥。 它包含并带有两个键的对象。
[
{
"student": {
"name": "ABCD",
"age": 8
},
"user": {}
}
]
您可以通过以下方式获取该对象中的值的数量:
Object.keys( data[0].student ).length;
要获得更好的浏览器支持,请参阅JavaScript对象的长度
链接地址: http://www.djcxy.com/p/27263.html