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 对象元素? [关闭]

使用其值获取对象的属性名称[重复]

需要一个 API 来查找给定股票代码的完整公司名称 [关闭]

如何将 JSON 中的 SQL 主键转换为 javascript 对象键,并将其他数据作为其值