我想得到这 json的"appid“,但问题是对象标题在时间上发生了变化,所以我需要一个js代码,其中选择"appid”作为列表中的第一个(第二个、第三个)对象。我试过这个,但不起作用
var sections = (call the json)
var index = [];
//setting the index array
for (var x in sections) {
index.push(x);
}
var imgid001 = (sections[index[1]].appid);
发布于 2017-12-01 14:28:29
我不明白你在找什么?但也许这会有帮助:
var sections = (al the json code in local)
var index = [];
//setting the index array
for (var x = 0 ; x < sections.lenght; x ++){
index.push(x)
}
var imgid001 = (sections[index[90]].appid);
发布于 2017-12-01 14:35:07
使用Object.values()
访问键对应的值,然后使用array#map
获取appid
值。
var json = {"578080":{"appid":578080,"name":"PLAYERUNKNOWN'S BATTLEGROUNDS","developer":"PUBG Corporation","publisher":"PUBG Corporation","score_rank":17,"positive":277104,"negative":173247,"userscore":60,"owners":22512885,"owners_variance":142499,"players_forever":22385548,"players_forever_variance":142115,"players_2weeks":16894492,"players_2weeks_variance":124193,"average_forever":8570,"average_2weeks":1771,"median_forever":5509,"median_2weeks":1266,"price":"2999"},"730":{"appid":730,"name":"Counter-Strike: Global Offensive","developer":"Valve","publisher":"Valve","score_rank":74,"positive":2094164,"negative":228950,"userscore":89,"owners":37137816,"owners_variance":180096,"players_forever":35672331,"players_forever_variance":176797,"players_2weeks":9605392,"players_2weeks_variance":94373,"average_forever":17518,"average_2weeks":714,"median_forever":4280,"median_2weeks":282,"price":"1499"},"570":{"appid":570,"name":"Dota 2","developer":"Valve","publisher":"Valve","score_rank":64,"positive":742208,"negative":101331,"userscore":87,"owners":117932840,"owners_variance":290445,"players_forever":117932840,"players_forever_variance":290445,"players_2weeks":9220909,"players_2weeks_variance":92502,"average_forever":11673,"average_2weeks":1144,"median_forever":258,"median_2weeks":640,"price":"0"}};
var result = Object.values(json).map(function(obj){
return obj.appid;
});
console.log(result);
发布于 2017-12-01 14:41:37
据我所知,你面临的问题是元素的排序.你想把排名第一的比赛排在第一位吗?
当将对象解析为JSON时,属性的顺序完全没有意义。您不能依赖任何JSON工具来确保它们的顺序是正确的。理论上,仅仅创建一个对象并通过一个for..in循环传递它,可能会时不时地给出不同的结果。
虽然它没有订单,但它仍然包括一种解决score_rank
问题的方法。
var sections = (call the json)
var index = [];
//setting the index array
for (var x in sections) {
index[sections[x].score_rank] = x;
}
var imgid001 = (sections[index[1]].appid);
使用score_rank作为index
映射中的索引将为您提供所需的服务。
https://stackoverflow.com/questions/47595410
复制相似问题