首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript中从JSON有效负载中获取所有匹配属性

问如何在JavaScript中从JSON有效负载中获取所有匹配属性
EN

Stack Overflow用户
提问于 2020-10-06 19:27:56
回答 2查看 170关注 0票数 2

我是一个新手,正在学习JSON,但我在显示一些API结果时遇到了问题:

代码语言:javascript
复制
$.getJSON(url, function (data) {
    enText = data.data.count;
    arText = data.data.matches.text;
    document.getElementById('verseText').innerHTML = 'Matches: '+enText+'';
    document.getElementById('demo').innerHTML = arText;
})

enText运行良好,但是假设这是端点,如何使用JSON (上面)将所有匹配的文本列出到HTML列表中:http://api.alquran.cloud/v1/search/abraham/all/en

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-06 19:32:17

在您API响应中,matches是一个对象数组。因此,您需要迭代循环来访问text值

代码语言:javascript
复制
$.getJSON("http://api.alquran.cloud/v1/search/abraham/all/en", function (data) {
    enText = data.data.count;
    arText = data.data.matches;

    var li= '';
    for (const x of arText) {
        li+='<li>'+x.text+' <span class="surah">'+x.surah.name+'</span></li>';

    }

    document.getElementById('verseText').innerHTML = 'Matches: ' + enText + '';
    document.getElementById('demo').innerHTML = li;
})

否则,如果您想要单个数据,请使用索引值获取它。就像下面的代码

代码语言:javascript
复制
arText = data.data.matches[0].text;
document.getElementById('demo').innerHTML = arText;
票数 1
EN

Stack Overflow用户

发布于 2020-10-06 19:36:39

matches是一个JSON Array。您需要遍历元素并获取text属性。此外,请记住在处理函数中使用const、let或var声明变量。

代码语言:javascript
复制
$.getJSON(url, function (data) {
    const enText = data.data.count;
    const arText = data.data.matches
                       .map(m => `<li>${m.text}</li>`)
                       .join("");
    document.getElementById('verseText').innerHTML = 'Matches: '+enText+'';
    document.getElementById('demo').innerHTML = arText;
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64224852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档