У меня есть некоторые проблемы с получением данных из массива JSON. Я использую node + async + request (и express ofc).
Извлечение данных из массива JSON
Часть кода:
function(data, callback){
var URL = 'https://'+ server + '.api.pvp.net/api/lol/' + serw + '/v1.3/stats/by-summoner/' + data.id + '/summary?season=SEASON2016&api_key=' + api;
request(URL, function(err, response, body){
if(!err & response.statusCode == 200){
var json = JSON.parse(body);
var assists = json['playerStatSummaries'][0]['aggregatedStats'].totalAssists;
Основная проблема заключается в том, что [0] дает обратно первый объект из массива.
{
"playerStatSummaries": [
{
"playerStatSummaryType": "CAP5x5",
"aggregatedStats": {
"totalNeutralMinionsKilled": 2042,
"totalMinionKills": 4317,
"totalChampionKills": 350,
"totalAssists": 417,
"totalTurretsKilled": 36
},
"modifyDate": 1453276061000,
"wins": 20
},
{
"playerStatSummaryType": "CoopVsAI",
"aggregatedStats": {
"totalNeutralMinionsKilled": 446,
"totalMinionKills": 6100,
"totalChampionKills": 1092,
"totalAssists": 761,
"totalTurretsKilled": 116
},
"modifyDate": 1453276061000,
"wins": 80
},
Иногда массив немного отличается, и если игрок не играл какую-либо игру «CAP5x5», то COOPvsAI является [0] объект.
Любые идеи о том, как извлекать данные с помощью playerStatSummaryType вместо номера объекта в массиве? Или как сделать какой-то обход, который делает null, когда не удается найти режим «CAP5x5»? Благодарю.
Что вы хотите получить? – 25r43q
var assists = json ['playerStatSummaries'] [0] ['aggregatedStats']. TotalAssists; Дает мне totalAssists из 1 объекта в массиве, и я хочу вытащить totalAssists, но не используя [0], потому что иногда, если игрок не играл в этом режиме, [0] - это нечто совершенно другое, и оно не возвращает данные, которые мне нужны , – BaSic