Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript JSON解析错误_Javascript_Json - Fatal编程技术网

JavaScript JSON解析错误

JavaScript JSON解析错误,javascript,json,Javascript,Json,我正在尝试解析以下JSON: { "brands": [ { "_id": "46378Bkjdd", "result": { "car": { "Name": [ "mercedes", "bmw", "gol

我正在尝试解析以下JSON:

{
    "brands": [
        {
            "_id": "46378Bkjdd",
            "result": {
                "car": {
                    "Name": [
                        "mercedes",
                        "bmw",
                        "golf",
                        "seat"
                    ]
                }
            }
        },
        {
            "_id": "cf876567",
            "result": {
                "car": {
                    "Name": [
                        "renault",
                        "porsh"
                    ]
                }
            }
        }
    ]
}
需要使用以下名称:mercredes、宝马、高尔夫、seat、雷诺、保时捷 大小可能超过T 2 _id,这只是一个示例

我试过这个,但不起作用:

for (var i=0; response.brands.length; i++){
   console.log("Names: "+response.brands.result.car.Name[i]);
}
谢谢

您需要在名称数组上循环。此外,品牌是一个阵列。你的循环需要像i
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]);
    }
}

a是您的输入数组。

一种功能性方法,没有循环:

var result = obj.brands.reduce(function (a, b) {
  return a.concat(b.result.car.Name);
}, []);
console.log(result);
产出:

["mercedes", "bmw", "golf", "seat", "renault", "porsh"]

因为它不在代码中,所以是否使用response=JSON.parseyourJSONStringbrands是一个数组。您需要响应.brands[0].result.car.name[0]->mercedes