Javascript 只有当组中的另一个键名匹配时,我如何才能从JSON API中提取键值?
这就是JSON文件的内容:Javascript 只有当组中的另一个键名匹配时,我如何才能从JSON API中提取键值?,javascript,jquery,Javascript,Jquery,这就是JSON文件的内容: { "page": 1, "total_pages": 10, "listings": [ { "name": "Bob", "occu": "Entry", "team": "Blue", "sec": 3, "days": 16 }, { "name": "Tom", "occu": "Advance", "team": "Main"
{
"page": 1,
"total_pages": 10,
"listings": [
{
"name": "Bob",
"occu": "Entry",
"team": "Blue",
"sec": 3,
"days": 16
},
{
"name": "Tom",
"occu": "Advance",
"team": "Main",
"sec": 1,
"days": 23
},
This continues on with hundreds of other entries...
例如,仅当“名称”为Tom时,我如何提取“天”的值
对不起,如果这是一个原始的问题,我只是开始开发,我正在做一个快速的项目,这将帮助我当地的体育团队,我在脚本或API方面还不是很先进。谢谢您可以创建这样一个函数,它可以循环遍历对象的数组(
列表
):
getDaysFromListings = (listings, name) => {
for (let listing of jsonObj.listings) {
if (listing.name === name) {
return listing.days;
}
}
// didn't find 'Tom', return empty string
return '';
}
然后,按如下方式调用函数:
// assuming your entire json object is stored in a variable called "json"
let days = getDaysFromListings(json.listings, 'Tom');
<div id="target"></div>
// assume you already stored the data in variable
document.getElementById('target').innerHTML = days;
由于变量days
以字符串的形式出现,因此可以使用+days
将其转换为数字
Edit:要将变量days
添加到html中,首先,假设要将文本添加到如下所示的div中:
// assuming your entire json object is stored in a variable called "json"
let days = getDaysFromListings(json.listings, 'Tom');
<div id="target"></div>
// assume you already stored the data in variable
document.getElementById('target').innerHTML = days;
注意:您必须在加载上面的htmldiv
之后加载此javascript。若要仅在“name”为Tom时提取“days”的值,需要通过过滤,然后映射days
let listings=[
{
“姓名”:“鲍勃”,
“占用人”:“条目”,
“团队”:“蓝色”,
“第3节:,
“天”:16
},
{
“姓名”:“汤姆”,
“占领”:“前进”,
“团队”:“主要”,
“sec”:1,
“天”:23
},
{
“姓名”:“汤姆”,
“占用”:“高级”,
“团队”:“Maiddn”,
“sec”:1,
“天”:55
}
];
const result=listings.filter(listing=>listing.name==“Tom”).map(listing=>listing.days);
控制台日志(结果)代码>因为有很多方法可以实现这一点,而且我确信这可能不是最好的方法,其中一种方法是使用Array.prototype.find
到目前为止,您尝试了什么?可能重复,或者如何获取返回值并通过html将其显示在页面上?看起来我把一切都设置好了,控制台日志中没有错误,我只需要链接它。我尝试了一些东西,比如getElementById,但我认为这是错误的,因为没有显示任何内容。谢谢你的帮助。