JSON对象有很多错误。帮忙

时间:2016-04-19 06:14:31

标签: javascript jquery json

Updated code Code error 2我创建了一个JSON对象,并且遇到了很多错误。我是JSON的新手,非常友善。在此处发布截图。 任何帮助将不胜感激。

[![var data\[\]= {"cars": 
        "Honda":\[
            {"model":"Figo" },
            {"model":"City"}
        \],
        "Audi": \[
            {"model":"A6"},
            {"model":"A8"}
        \]
    }

data.cars\['Honda'\]\[0\].model   
data.cars\['Honda'\]\[1\].model   
data.cars\['Audi'\]\[0\].model 
ata.cars\['Audi'\]\[1\].model 

for (var make in data.cars) {
    for (var i = 0; i < data.cars\[make\].length; i++) {
        var model = data.cars\[make\]\[i\].model;

        alert(make + ', ' + model);
    }
}][1]][1]

Error screen

使用JSONformatter和验证程序站点检查我的代码。

3 个答案:

答案 0 :(得分:0)

Imho它更像是:

var cars = {
      "Honda":
      [
         {"model":"Figo" },
         {"model":"City"}
      ],
      "Audi":
      [
         {"model":"A6"},
         {"model":"A8"}
      ]
   }

如果你想要一个巨大的JSON对象存储许多汽车属性数组 为什么要使用这些&#34; /&#34;无处不在

(PS:如果你想看一些例子 - &gt; http://json.org/example.html

答案 1 :(得分:0)

我相信这是你要寻找的结构:

cars={
    make:{
        honda:[
            {
                model:"accord",
                color:"black",
                cylinders: "6",
                year:"2012"
            },
            {
                model:"civic",
                color:"white",
                cylinders: "4",
                year:"2015"
            }
        ],
        acura:[
            {
                model:"integra",
                color:"red",
                cylinders: "4",
                year:"1992"
            },
            {
                model:"RSX",
                color:"Metallic Blue",
                cylinders: "4",
                year:"2016"
            }               
        ],
        audi:[
            {
                model:"R8",
                color:"white",
                cylinders: "8",
                year:"2015"
            },
            {
                model:"A8",
                color:"red",
                cylinders: "8",
                year:"2016"
            }               

        ]
    }
};
document.addEventListener('DOMContentLoaded',()=>{
    var models=[],colors=[],cylinder=[],year=[]; //INSTANTIATE ARRAYS
    for(p in cars.make){ //LOOP THROUGH OBJECT PROPS (CARS.MAKE)
        cars.make[p].forEach((o)=>{ //LOOP THROUGH (CARS.CARS.PROPS) PUSH OBJ INTO ARRAYS
            models.push(o.model);  
            colors.push(o.color);
            cylinders.push(o.cylinders);
            year.push(o.year);
        });
    console.log(models);
    console.log(colors);
    console.log(cylinders);
    console.log(year);
});

答案 2 :(得分:0)

既然你提到了

  

我完全是JSON的新手

我想完全解释一下。

您执行此操作的方式中存在一些语法错误。你实际上是在javascript对象中进行for循环,这显然会破坏。如果您的目的是提醒所有品牌的所有型号,那么您就是这样做的。

最初你有这个

var data = {
            cars:{
                  "Honda":
                   [
                    {"model":"Figo" },
                    {"model":"City"}
                   ],
                  "Audi":
                   [
                    {"model":"A6"},
                    {"model":"A8"}
                   ]
                 }
           }

你有一个名为data的变量,它是一个对象({}指的是对象),这个对象有一个名为cars的属性,这个属性包含一个对象({{1} }指对象)。现在,此对象有2个属性{}Honda。每个属性都是数组类型(Audi指的是数组)。每个数组都包含对象列表。

所以一旦你明确了上述观点。让我们操纵你拥有的对象。

执行forloop以获取[]对象的所有属性,当我们持有每个属性时,让我们循环其数组,然后提取cars属性值。

model

也不要与Javascript Object和JSON混淆....

在上面的示例中,变量for (var make in data.cars) { for (var i = 0; i < data.cars[make].length; i++) { var model = data.cars[make][i].model; alert(make + ', ' + model); } } 是Javascript对象,当您执行data时,您将此Javascript对象转换为字符串格式,并且该字符串格式称为JSON ...

Demo Fiddle 可帮助您更好地理解。