AJAX: как читать данные JSON - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь получить данные JSON из URL.Вот 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);

Что мне делать?Спасибо

Ответы [ 4 ]

0 голосов
/ 14 мая 2018

Попробуйте это:

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);
0 голосов
/ 11 мая 2018

Вы можете использовать обратный вызов, обещания или асинхронное / ожидание.Вот способ, которым вы можете использовать обратный вызов для получения и использования полученных данных:

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);
});
0 голосов
/ 11 мая 2018

Чтобы прочитать 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"] ...
0 голосов
/ 11 мая 2018

Вы можете использовать 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'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...