我有一个返回的JSON对象,看起来像这样
[
{
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 1
}, {
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 2
}
]
这是JSON的精简版,我试图访问说team_id
result = JSON.stringify(result, null, 4);
console.log(result);
$('#test').append(result);
alert(result[0].team_id);
我似乎得到的都是未定义的,我是不是正确访问了这个?
非常感谢
答案 0 :(得分:0)
您已将对象result
字符串化为字符串。因此,您肯定无法再访问这些属性了。
对字符串化结果使用第二个变量:
var result_stringified = JSON.stringify(result, null, 4);
console.log(result_stringified);
$('#test').append(result_stringified);
alert(result[0].team_id);
答案 1 :(得分:0)
试试这个:
var data = [{
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 1
}, {
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 2
}]
$.each(data, function(k, v) {
alert(this.team_id);
})
答案 2 :(得分:0)
您看到undefined
的原因是因为您已经将JSON对象已经字符串化为String。所以一个String!= Array,因此执行String [0]会给你未定义的,显然对未定义的.team_id
仍然是undefined
。
你得到的是array
javascript objects
。
要访问对象的特定team_id
属性,首先必须从数组中访问object
,然后使用.team_id
表示法或["team_id"]
语法object
。
示例:强>
var items =[
{
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 1
},
{
"competition": {
"name": "Premier League",
},
"nextState": 1,
"team_id": 2
}
]
items.forEach(item => { console.log("item_id= " + item.team_id + ", competition= " + item.competition.name); });

我为上述示例所做的是,我使用forEach
API浏览items
数组的各个项目,然后通过访问打印object
的详细信息其team_id
和嵌套的competition.name
属性。
只是因为您对.forEach()
API感兴趣。
查看:强>
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach