我创建了一个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]
使用JSONformatter和验证程序站点检查我的代码。
答案 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 可帮助您更好地理解。