我有一个json文件。我可以使用
获取json文件中的数据$.getJSON.json("mock/Insight72.json", function (jsondata) {
response = jsondata.Data1;
response2 = jsondata.Data2;
});
但我想找到Data1和Data2的长度。我该怎么办?
这是JSON数据(只有水果部分)..
],
"Data1": {
"kitchen selectives": [{
"displayColor": "#DC143C",
"numProducts": 1,
"averagePrice": 25.99,
}],
"aroma": [{
"displayColor": "#991F1F",
"numProducts": 1,
"averagePrice": 60.25,
}, {
"displayColor": "#DC143C",
"numProducts": 1,
"averagePrice": 46.19,
}, ............
答案 0 :(得分:3)
由于Data1
似乎是Object
({
... }
),如果明确给出length
,它只会有{
"aroma": [],
"length": 2
}
作为另一个关键/值:
var keyCountData1 = Object.keys(jsondata.Data1).length;
但是,如果您想知道它拥有的键/属性数量,可以使用Object.keys()
:
length
您还可以在Array
内检索[
]
Data1
"aroma"
内的var aromas = jsondata.Data1.aroma.length;
,例如length
:
var dataLength = JSON.stringify(jsondata.Data1).length;
或者,如果您想知道Object的{{1}}为JSON:
{{1}}
然而,除此之外,您还必须明确说明您希望的“长度”。
答案 1 :(得分:2)
要了解response
对象中有多少元素,您可以执行以下操作:
var length = 0;
for (var key in response) {
response.hasOwnProperty(key) && ++length;
}
如果要查找其下所有数组的总长度,可以执行以下操作:
var length = 0;
for (var key in response) {
response.hasOwnProperty(key) && length += response[key].length;
}
答案 2 :(得分:0)
您可以使用两种不同的方法
这个与IE7和8不兼容。看看here。
var length = Object.keys(response).length;
var length2 = Object.keys(response2).length;
这个将通过json并返回长度:
function getJSONLegth(response) {
var count = 0;
for (var k in response) {
count++;
}
return count;
}
var length = getJSONLegth(response);
var length2 = getJSONLegth(response2);
对你有帮助吗?