我正在尝试从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的);
我该怎么办?感谢
答案 0 :(得分:1)
您可以使用find()
查找数组中的内容。我和利物浦一起改变了切尔西,因为他们今年将赢得冠军联赛。谁关心另一支球队......
let obj = {"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
}
]
}
console.log(obj.ING.find(e => e.Team === 'Liverpool'));

答案 1 :(得分:1)
您可以使用callback,promises或async / await。这是一种可以使用回调来获取和使用检索数据的方法:
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);
});
答案 2 :(得分:1)
阅读JSON。 注意括号类型
如果它有[],则将该部分视为数组,如果它具有花括号{3,则作为对象。
访问Array对象,使用索引,如0,1,2 ......
要访问对象,您可以使用点符号your_object.key
或your_object["key"]
in your case, we can read it like
let json = {"ING":[{...}]}
json["ING"][0]["SOME_KEY"] ...
答案 3 :(得分:0)
试试这个:
var myData = {
"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
}
]
};
var res = myData.ING.filter(obj => obj.Team == "Chelsea");
console.log(res[0].Team);