json 按名称查找对象并获取其值(api)[关闭]
Posted
技术标签:
【中文标题】json 按名称查找对象并获取其值(api)[关闭]【英文标题】:json find object by name and grab its value (api) [closed] 【发布时间】:2020-03-30 00:51:00 【问题描述】:我正在抓取 Steam 数据并将其保存到名为 body 的变量中
现在我想要做的是找到total_kills
它不需要这个对象总是在body.playerstats.stats[0].value
所以有没有办法通过total_kills
找到身体并获得它的价值
完整的api回复如下,美化形式
https://codebeautify.org/jsonviewer/cb2b563d
【问题讨论】:
【参考方案1】:似乎 body.playerstats.stats 是一个包含对象的数组。您可以做的是遍历该数组并存储所有具有name: 'total_kills'
的对象,这样的事情可以工作:
const totalKillsArr = body.playerstats.stats.filter((stat) =>
return stat.name === 'total_kills';
);
一旦你有了新的 totalKills 数组,你就可以使用 reduce 来获得所有总击杀数的总和:
const sumTotalKills = totalKills.reduce((sum, el) =>
sum += el.value;
return sum;
, 0);
如果 stats 数组中只有一个名称为 total_kills
的对象,则只需在主数组上使用一个简单的查找函数,如下所示:
const totalKills = body.playerstats.stats.find(stat =>
return stat.name === 'total_kills';
);
这将为您找到名称属性为total_kills
的第一个对象。如果没有这样的对象,它将返回undefined
。
【讨论】:
感谢您的回答,但有没有办法返回值我试过console.log(totalKills.value);
它返回我undefined
totalKills 是一个新数组,其中包含 name 属性等于“total_kills”的对象。如果您还需要获取所有 total_kills 的总和,则循环遍历新数组并将值添加到变量中。
只有一个对象名为total_kills
?我理解错了,这种情况下最好使用查找功能。
是的,只有一个具有total_kills
名称的对象,其他对象类似于total_kills_ak47
那样以上是关于json 按名称查找对象并获取其值(api)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 API 获取 JSON 数组中没有名称的 JSON 对象
Android 谷歌云视觉 API 获取 Json 并使用 Json 去另一个活动
如何从 GraphQL API 调用中获取 JSON 对象元素? [关闭]