我一直在尝试使用jquery使用名称来获取json数据但没有成功,只能使用对象索引,这是我的代码:
var json = [
{
"idiom":[
{
"nombre":"español",
"id":1
},
{
"nombre":"ingles",
"id":2
}
]
}
];
console.log(json)
$.each( json[0], function( key, data ) {
$.each(data, function(index, indata) {
console.log(indata.nombre);
});
});
console.log('-------');
$.each( json.idiom, function( key, data ) {
$.each(data, function(index, indata) {
console.log(indata.nombre);
});
});
如果我尝试使用 json.idiom 进行访问,而不是 json [0] ,则代码无法正常工作
这是一个小提琴:https://jsfiddle.net/wm0de41h/
答案 0 :(得分:2)
您必须访问json[0]
,因为它是一个包含单个项目的数组。如果您想访问json.idiom
,则需要将对象重组为:
var json = {
"idioms":[
{
"nombre":"español",
"id":1
},
{
"nombre":"ingles",
"id":2
}
]
};
注意现在json
对象周围没有方括号。 (我也复数idioms
,因为它是一个数组。
最后,你不需要jquery来迭代这个。您可以使用Array.forEach()
。
json.idiom.forEach(function(idiom) {
console.log(idiom.nombre);
});
答案 1 :(得分:-3)
使用花括号{}
定义JSON对象,而不是括号[]
。尝试删除括号,这将留下你:
var json = {
"idiom":[
{
"nombre":"español",
"id":1
},
{
"nombre":"ingles",
"id":2
}
]
};
请参阅MDN上的JavaScript对象文档。