Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 抓取嵌套Json对象中的深层数据_Javascript_Angularjs_Arrays_Json - Fatal编程技术网

Javascript 抓取嵌套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": [

我有嵌套JSON对象形式的数据。我想获取一些数据来创建一个表,但它在数组和对象中嵌套得很深。对我的桌子来说,最好的方式是什么

如果我想得到球队的名字,华盛顿国民队和迈阿密马林鱼队,我该如何去引用这些属性?我使用角度1和ng repeat进行迭代

下面是一个较长json对象的第一部分示例:

{
  "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请将其标记为正确,以便对其他人也有帮助。