JavaScript的JSON解析错误

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]); 
} 

感谢

+0

因为它不是在你的代码,你用'响应= JSON.parse(yourJSONString)'' – 2014-10-30 16:57:17

+4

brands'是一个数组。你需要'response.brands [0] .result.car.name [0]' - > mercedes – 2014-10-30 16:57:33

你需要循环的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]) 
} 

DEMO

遍历所有给定的子阵列,你应该使用两个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"]