javascript - 使用 jQuery 按关键字搜索 JSON

标签 javascript jquery json

我正在尝试通过关键字专门搜索 JSON。我已经成功地通过 ID 进行了搜索,在下面的代码中,它是“tags”。不过,我想做的是,在“tags”的 ID 内搜索,但通过关键字“deprecied”进行搜索。仅选择 JSON 中括号中表示“已折旧”的内容。然后标题和 uri 将从中提取并写入文档,就像我在代码中一样。

我如何使用当前代码进行关键字搜索?如果我的逻辑难以理解,请在评论中告诉我。预先感谢:)

注意:这正是将使用数据的 JSON 格式。

这是我的代码:

<script type='text/javascript'>
  window.onload=function(){
  var data = {
         "Feed": [
           {
              "categories":[
              "Depreciated",
              "Test"
              ],
              "content":"",
              "tags":[
              "Depreciated",
              "Test"
              ],
              "title":"Visual Design",
              "uri":"google.com"
            },
            {
               "categories":[
               "Depreciated"
               ],
               "content":"",
               "tags":[
               "Depreciated"
               ],
               "title":"Typography",
               "uri":"google.com"
             }
         ]
      },
      res = JSON.search( data, '//*[tags]' );

  for (var i=0, str=''; i<res.length; i++) {
      str += '<a href="' + res[i].uri + '">Link</a>' + res[i].title + '<br/>';
  }

  document.getElementById('output').innerHTML = str;
  }
</script>

最佳答案

没有必要为此使用 jQuery。 Try something like this instead :

function getTitlesByTag(arr, tag) {
  return arr.filter(function(item) {
     return item.tags.includes(tag)
  }).map(function(item) {
    return return {
      title: item.title,
      uri: item.uri
    }
  })
}

Array.prototype.includes没有 IE 支持,所以如果您担心这一点,可以将检查交换为 indexOf,如下所示:

function getTitlesByTag(arr, tag) {
  return arr.filter(function(item) {
     return item.tags.includes(tag)
  }).map(function(item) {
    return {
      title: item.title,
      uri: item.uri
    }
  })
}

关于javascript - 使用 jQuery 按关键字搜索 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556530/

相关文章:

javascript - 为什么这个函数不返回 JSON 字符串?

jquery - 如何访问 HTML 中的数字数据?

javascript - 页面刷新时轨道 slider 未加载?

javascript - 使用数组在node.js中顺序执行

javascript - "Good"如何在 React 中更新状态(从之前的值)

jquery - jQuery声音通知有关新文件的内容

ios - 谷歌地图api在swift3中解析旅行持续时间数据

javascript - 如何将 JSON 对象中的文本字符串延续到另一行?

javascript - (function eval () {}) 如果函数体处于严格模式会抛出语法错误?

javascript - Loopback API - 我可以更改 API 中显示的内容吗?