Javascript AJAX:如何读取JSON数据

Javascript AJAX:如何读取JSON数据,javascript,arrays,json,ajax,object,Javascript,Arrays,Json,Ajax,Object,我正在尝试从url获取json数据。这是js var myRequest = new XMLHttpRequest(); myRequest.open('GET', 'URL that has JSON format'); myRequest.onload = function() { var myData = JSON.parse(myRequest.responseText); console.log(myData); }; myRequest.send();

我正在尝试从url获取json数据。这是js

var myRequest = new XMLHttpRequest();
  myRequest.open('GET', 'URL that has JSON format');
  myRequest.onload = function() {
    var myData = JSON.parse(myRequest.responseText);
    console.log(myData);
  };
myRequest.send();
JSON数据格式如下

"ING":
    [
        {
            "#":1,
            "Team":"Manchester City",
            "Main":37,
            "Poin":97
        },
        {
            "#":2,
            "Team":"Manchester United",
            "Main":37,
            "Poin":78
        },
        {
            "#":3,
            "Team":"Tottenham Hotspur",
            "Main":37,
            "Poin":74
        },
        {
            "#":4,
            "Team":"Liverpool",
            "Main":37,
            "Poin":72
        },
        {
            "#":5,
            "Team":"Chelsea",
            "Main":37,
            "Poin":70
        }
    ]
}
例如,我想去拿Chealsea。我怎样才能做到这一点?我知道我必须改变

console.log(myData)

我该怎么办?谢谢

您可以使用
find()
在数组中查找内容。我把切尔西换成了利物浦,因为他们今年将赢得冠军联赛。谁会在乎另一支球队呢

让obj={“ING”:
[
{
"#":1,
“团队”:“曼城”,
“主要”:37,
“波因”:97
},
{
"#":2,
“球队”:“曼联”,
“主要”:37,
“波因”:78
},
{
"#":3,
“球队”:“托特纳姆热刺”,
“主要”:37,
“波因”:74
},
{
"#":4,
“团队”:“利物浦”,
“主要”:37,
“波因”:72
},
{
"#":5,
“团队”:“切尔西”,
“主要”:37,
“波因”:70
}
]
}
log(obj.ING.find(e=>e.Team=='Liverpool')您可以使用
find()
在数组中查找某些内容。我把切尔西换成了利物浦,因为他们今年将赢得冠军联赛。谁会在乎另一支球队呢

让obj={“ING”:
[
{
"#":1,
“团队”:“曼城”,
“主要”:37,
“波因”:97
},
{
"#":2,
“球队”:“曼联”,
“主要”:37,
“波因”:78
},
{
"#":3,
“球队”:“托特纳姆热刺”,
“主要”:37,
“波因”:74
},
{
"#":4,
“团队”:“利物浦”,
“主要”:37,
“波因”:72
},
{
"#":5,
“团队”:“切尔西”,
“主要”:37,
“波因”:70
}
]
}

log(obj.ING.find(e=>e.Team=='Liverpool')您可以使用回调、承诺或异步/等待。以下是一种使用回调获取和使用检索到的数据的方法:

function getUrl(url, callback) {
  var myRequest = new XMLHttpRequest();
  myRequest.open('GET', url);
  myRequest.onload = function() {
    var myData = JSON.parse(myRequest.responseText);
    console.log(myData);
    callback(myData);
  };
  myRequest.send();
}
您可以这样请求和使用您的数据:

getUrl('URL for JSON DATA', function(data) {
  // find chealsea
  var chealsea = data.ING.find(function(entry) { return entry.Team === 'Chealsea' });
  console.log(chealsea);
});

您可以使用回调、承诺或异步/等待。以下是一种使用回调获取和使用检索到的数据的方法:

function getUrl(url, callback) {
  var myRequest = new XMLHttpRequest();
  myRequest.open('GET', url);
  myRequest.onload = function() {
    var myData = JSON.parse(myRequest.responseText);
    console.log(myData);
    callback(myData);
  };
  myRequest.send();
}
您可以这样请求和使用您的数据:

getUrl('URL for JSON DATA', function(data) {
  // find chealsea
  var chealsea = data.ING.find(function(entry) { return entry.Team === 'Chealsea' });
  console.log(chealsea);
});
读取JSON。 注意括号类型

如果它有[],则将该部分视为数组,如果它有大括号{3,则视为对象

要访问数组对象,请使用索引,如0、1、2。。。 要访问对象,您可以使用点符号
您的\u对象.key
您的\u对象[“key”]

读取JSON。 注意括号类型

如果它有[],则将该部分视为数组,如果它有大括号{3,则视为对象

要访问数组对象,请使用索引,如0、1、2。。。 要访问对象,您可以使用点符号
您的\u对象.key
您的\u对象[“key”]


试试这个:

var myData={
“ING”:[{
"#": 1,
“团队”:“曼城”,
“主要”:37,
“波因”:97
},
{
"#": 2,
“球队”:“曼联”,
“主要”:37,
“波因”:78
},
{
"#": 3,
“球队”:“托特纳姆热刺”,
“主要”:37,
“波因”:74
},
{
"#": 4,
“团队”:“利物浦”,
“主要”:37,
“波因”:72
},
{
"#": 5,
“团队”:“切尔西”,
“主要”:37,
“波因”:70
}
]
};
var res=myData.ING.filter(obj=>obj.Team==“切尔西”);

console.log(res[0].Team);
试试这个:

var myData={
“ING”:[{
"#": 1,
“团队”:“曼城”,
“主要”:37,
“波因”:97
},
{
"#": 2,
“球队”:“曼联”,
“主要”:37,
“波因”:78
},
{
"#": 3,
“球队”:“托特纳姆热刺”,
“主要”:37,
“波因”:74
},
{
"#": 4,
“团队”:“利物浦”,
“主要”:37,
“波因”:72
},
{
"#": 5,
“团队”:“切尔西”,
“主要”:37,
“波因”:70
}
]
};
var res=myData.ING.filter(obj=>obj.Team==“切尔西”);

console.log(res[0].Team);
感谢@cale_b的建议您的问题实际上还不清楚。您如何知道您想要访问
Chelsea
?因为这是数组中的第五项,我们需要知道-您是在寻找一种查找信息的方法?还是仅仅是如何访问它?访问很简单:
var data=myData.ING[4].Team
,或
myData['ING'][4]['Team']
…但是查找切尔西队的记录是完全不同的…你可以使用简单的过滤器来实现这一点。var chelseaTeam=obj.ING.filter(函数(团队){Team.Team=='chelsea';}@cale\b如果我的问题不清楚,实际上我只需要访问它。myData['ING']['Team']是我所需要的。谢谢你。谢谢@cale_b的建议你的问题实际上还不清楚。你怎么知道你想访问切尔西?因为这是数组中的第五个项目,我们需要知道-你是在寻找一种查找信息的方法吗?还是仅仅是如何访问它?访问很简单:
var data=myData.ING[4].Team
,或
myData['ING'][4]['Team']
…但是查找切尔西队的记录是完全不同的…你可以使用简单的过滤器来实现这一点。var chelseaTeam=obj.ING.filter(函数(团队){Team.Team=='chelsea';}@cale\b如果我的问题不清楚,实际上我只需要访问它。myData['ING']['Team']是我所需要的。谢谢。重复的哦,我做了。但是有了37k代表,我希望你也这么做:)对不起,我刚才回答把它改成利物浦@cale_b,是的。但是有了37k代表,我希望你也这样做:)对不起,我刚才回答把它改成利物浦@cale_b