Javascript 抓取嵌套Json对象中的深层数据
我有嵌套JSON对象形式的数据。我想获取一些数据来创建一个表,但它在数组和对象中嵌套得很深。对我的桌子来说,最好的方式是什么 如果我想得到球队的名字,华盛顿国民队和迈阿密马林鱼队,我该如何去引用这些属性?我使用角度1和ng repeat进行迭代 下面是一个较长json对象的第一部分示例:Javascript 抓取嵌套Json对象中的深层数据,javascript,angularjs,arrays,json,Javascript,Angularjs,Arrays,Json,我有嵌套JSON对象形式的数据。我想获取一些数据来创建一个表,但它在数组和对象中嵌套得很深。对我的桌子来说,最好的方式是什么 如果我想得到球队的名字,华盛顿国民队和迈阿密马林鱼队,我该如何去引用这些属性?我使用角度1和ng repeat进行迭代 下面是一个较长json对象的第一部分示例: { "sports": [ { "name": "baseball", "id": 1, "uid": "s:1", "leagues": [
{
"sports": [
{
"name": "baseball",
"id": 1,
"uid": "s:1",
"leagues": [
{
"name": "Major League Baseball",
"abbreviation": "mlb",
"id": 10,
"uid": "s:1~l:10",
"groupId": 9,
"shortName": "MLB",
"events": [
{
"id": 350506120,
"uid": "s:1~l:10~e:350506120",
"date": "2015-05-06T17:05:00Z",
"season": {
"year": 2015,
"type": 2,
"description": "regular",
"startDate": "2015-04-05T07:00:00Z",
"endDate": "2015-10-05T06:59:59Z"
},
"timeValid": true,
"competitions": [
{
"id": 350506120,
"uid": "s:1~l:10~c:350506120",
"date": "2015-05-06T17:05:00Z",
"timeValid": true,
"competitors": [
{
"type": "team",
"score": 7,
"homeAway": "home",
"isWinner": true,
"team": {
"id": 20,
"uid": "s:1~l:10~t:20",
"location": "Washington",
"name": "Nationals",
"nickname": "Washington",
"abbreviation": "WSH",
"color": "0a295d",
"links": {
"api": {
"teams": {
"href": "http://api-partners.espn.com/v1/sports/baseball/mlb/teams/20"
}
}
},
"record": {
"summary": "14-15",
"wins": 14,
"losses": 15,
"overtimeLosses": 1,
"ties": 0
}
}
},
{
"type": "team",
"score": 5,
"homeAway": "away",
"isWinner": false,
"team": {
"id": 28,
"uid": "s:1~l:10~t:28",
"location": "Miami",
"name": "Marlins",
"nickname": "Miami",
"abbreviation": "MIA",
"color": "0081c7",
"links": {
"api": {
"teams": {
"href": "http://api-partners.espn.com/v1/sports/baseball/mlb/teams/28"
}
}
},
// ....
谢谢大家! 使用
数组映射()
函数:
var res = obj.sports[0].leagues[0].events[0].competitions[0].competitors.map(function(item) {
return item.team.location+ " " +item.team.name;
});
console.log(res);
var resArray = [];
for (var i in obj.sports[0].leagues[0].events[0].competitions[0].competitors) {
resArray.push(obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.location+ " " +obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.name);
}
console.log(resArray);
在循环中使用:
var res = obj.sports[0].leagues[0].events[0].competitions[0].competitors.map(function(item) {
return item.team.location+ " " +item.team.name;
});
console.log(res);
var resArray = [];
for (var i in obj.sports[0].leagues[0].events[0].competitions[0].competitors) {
resArray.push(obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.location+ " " +obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.name);
}
console.log(resArray);
工作演示:
var res = obj.sports[0].leagues[0].events[0].competitions[0].competitors.map(function(item) {
return item.team.location+ " " +item.team.name;
});
console.log(res);
var resArray = [];
for (var i in obj.sports[0].leagues[0].events[0].competitions[0].competitors) {
resArray.push(obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.location+ " " +obj.sports[0].leagues[0].events[0].competitions[0].competitors[i].team.name);
}
console.log(resArray);
var obj={
“体育”:[
{
“名称”:“棒球”,
“id”:1,
“uid”:“s:1”,
“联盟”:[
{
“名称”:“美国职业棒球大联盟”,
“缩写”:“mlb”,
“id”:10,
“uid”:“s:1~l:10”,
“组ID”:9,
“短名”:“MLB”,
“事件”:[
{
“id”:350506120,
“uid”:“s:1~l:10~e:350506120”,
“日期”:“2015-05-06T17:05:00Z”,
“季节”:{
“年份”:2015年,
“类型”:2,
“说明”:“常规”,
“起始日期”:“2015-04-05T07:00:00Z”,
“结束日期”:“2015-10-05T06:59:59Z”
},
“timeValid”:true,
“竞赛”:[
{
“id”:350506120,
“uid”:“s:1~l:10~c:350506120”,
“日期”:“2015-05-06T17:05:00Z”,
“timeValid”:true,
“竞争对手”:[
{
“类型”:“团队”,
“得分”:7分,
“homeAway”:“home”,
“isWinner”:没错,
“团队”:{
“id”:20,
“uid”:“s:1~l:10~t:20”,
“地点”:“华盛顿”,
“姓名”:“国民”,
“昵称”:“华盛顿”,
“缩写”:“WSH”,
“颜色”:“0a295d”,
“链接”:{
“api”:{
“团队”:{
“href”:”http://api-partners.espn.com/v1/sports/baseball/mlb/teams/20"
}
}
},
“记录”:{
“摘要”:“14-15”,
“胜利”:14,
“损失”:15,
“超期损失”:1,
“关系”:0
}
}
},
{
“类型”:“团队”,
“得分”:5分,
“homeAway”:“away”,
“isWinner”:错误,
“团队”:{
“id”:28,
“uid”:“s:1~l:10~t:28”,
“地点”:“迈阿密”,
“名称”:“马林鱼”,
“昵称”:“迈阿密”,
“缩写”:“MIA”,
“颜色”:“0081c7”,
“链接”:{
“api”:{
“团队”:{
“href”:”http://api-partners.espn.com/v1/sports/baseball/mlb/teams/28"
}
}
}
}
}
]
}
]
}
]
}
]
}
]
};
风险值重排序=[];
for(对象体育[0]中的变量i)。联盟[0]。事件[0]。竞赛[0]。竞争者){
resArray.push(obj.sports[0]。联赛[0]。赛事[0]。竞赛[0]。竞争者[i]。团队。位置+“”+obj.sports[0]。联赛[0]。赛事[0]。竞争者[i]。团队。名称);
}
控制台日志(重新排列)代码>请检查并重新发布您的json对象。您是否查看了SO帖子:它将为您提供一些领先优势。谢谢@RohitJindal@JonathanZungre请将其标记为正确,以便对其他人也有帮助。