我有一个像这样的json:
{"result":{"sandbox":1,"0":{"id":1106,"url":"http:\/\/www.example.com\/index1.html"},"1":{"id":9655,"url":"http:\/\/www.example.com\/index2.html"},"2":{"id":8447,"url":"http:\/\/www.example.com\/index3.html"}}}
我正在检索它,然后执行此操作:
var json = JSON.parse(data);
console.log(json.length);
但控制台输出“未定义”,即使我只是登录(json)它显示对象。为什么?我怎样才能获得长度?我需要它用于for循环
答案 0 :(得分:0)
该JSON文档中的根级元素是一个对象,而不是一个数组。对象没有length属性。相反,您可以打印出整个对象:
console.log(json);
请注意,对于对象,您应该使用数组而不是数字键,如下所示:
{"result":
{"sandbox":1,
"results": [
{"id":1106,"url":"http:\/\/www.example.com\/index1.html"},
{"id":9655,"url":"http:\/\/www.example.com\/index2.html"},
{"id":8447,"url":"http:\/\/www.example.com\/index3.html"}
]
}
}
使用此修改后的JSON,您可以输出:
console.log(modifiedJson.result.results.length);
答案 1 :(得分:0)
json不是一个数组,所以你不会得到它的长度。
如果json有类似[1,2,3]的东西,那么它就是一个数组
您可以获得console.log(json.result)
尝试使用Online Parser