JavaScript的JSON解析错误
问题描述:
我有以下的JSON,我试图解析:JavaScript的JSON解析错误
{
"brands": [
{
"_id": "46378Bkjdd",
"result": {
"car": {
"Name": [
"mercedes",
"bmw",
"golf",
"seat"
]
}
}
},
{
"_id": "cf876567",
"result": {
"car": {
"Name": [
"renault",
"porsh"
]
}
}
}
]
}
需要获得“名”有:mercredes,宝马,高尔夫,座位,雷诺,porsh 规模可能更多的是2“_id”,这只是为了举例。
我试过,但它不工作:
for (var i=0; response.brands.length; i++){
console.log("Names: "+response.brands.result.car.Name[i]);
}
感谢
答
你需要循环的Name
阵列。另外brands
是一个数组。你的循环需要类似i < array.length
来开始,但它从来没有。这是一个有效的。它缓存循环中的数组长度(在l
),这被认为是很好的做法。
var array = obj.brands[0].result.car.Name;
for (var i = 0, l = array.length; i < l; i++) {
console.log('Name: ' + array[i])
}
答
遍历所有给定的子阵列,你应该使用两个for循环如下:
var brandsLen = a.brands.length;
for (j = 0; j < brandsLen; ++j) {
var singleBrandLen = a.brands[j].result.car.Name.length;
for (i = 0; i < singleBrandLen; ++i) {
console.log(a.brands[j].result.car.Name[j]);
}
}
一个是你的输入数组。
答
从功能出发,没有循环:
var result = obj.brands.reduce(function (a, b) {
return a.concat(b.result.car.Name);
}, []);
console.log(result);
输出:
["mercedes", "bmw", "golf", "seat", "renault", "porsh"]
因为它不是在你的代码,你用'响应= JSON.parse(yourJSONString)'' – 2014-10-30 16:57:17
brands'是一个数组。你需要'response.brands [0] .result.car.name [0]' - > mercedes – 2014-10-30 16:57:33