首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过遍历JSON查找所需的数据

如何通过遍历JSON查找所需的数据
EN

Stack Overflow用户
提问于 2017-07-28 03:38:04
回答 3查看 53关注 0票数 2

我对vue js完全陌生,我只想遍历json数据,并想找出我所需的数据是否在文件中可用。这是json的示例:

代码语言:javascript
复制
[
{
    "id": "text-5",
    "widget": "hello",
    "params": {
        "0": "section-right",
        "name": "Right",
        "id": "section",
        "description": "",
        "class": "",
        "after_title": "",
        "widget_id": "text-5"
    },
    "instance": {
        "title": "St",
        "text": "",
        "filter": false,
        "sidebar": "se-right",
        "sidebar-order": 0,
        "inherited": "yes",
        "number": 0
    }
},
{
    "id": "text-5",
    "widget": "hello",
    "params": {
        "0": "section-right",
        "name": "Right",
        "id": "section",
        "description": "",
        "class": "",
        "after_title": "",
        "widget_id": "text-5"
    },
    "instance": {
        "title": "Twitter Feed",
        "twitteruser": "Stei",
        "sidebar": "sectht",
        "sidebar-order": "4"
    }
}]

我只想遍历并查找"instance“是否包含值twitteruser。

我试过这段代码:

代码语言:javascript
复制
const data = JSON.parse(res).data
console.log(data[0].instance)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-28 03:59:24

您可以使用以下方式进行迭代。

代码语言:javascript
复制
    <script>
    var json_data = [
    {
        "id": "text-5",
        "widget": "hello",
        "params": {
            "0": "section-right",
            "name": "Right",
            "id": "section",
            "description": "",
            "class": "",
            "after_title": "",
            "widget_id": "text-5"
        },
        "instance": {
            "title": "St",
            "text": "",
            "filter": false,
            "sidebar": "se-right",
            "sidebar-order": 0,
            "inherited": "yes",
            "number": 0
        }
    },
    {
        "id": "text-5",
        "widget": "hello",
        "params": {
            "0": "section-right",
            "name": "Right",
            "id": "section",
            "description": "",
            "class": "",
            "after_title": "",
            "widget_id": "text-5"
        },
        "instance": {
            "title": "Twitter Feed",
            "twitteruser": "Stei",
            "sidebar": "sectht",
            "sidebar-order": "4"
        }
    }];


    for( var i = 0; i < json_data.length; i++) {

        if(typeof json_data[i].instance == 'object' && typeof json_data[i].instance.twitteruser != 'undefined'){
            console.log(json_data[i].instance.twitteruser);
        }

    }

    </script>
票数 0
EN

Stack Overflow用户

发布于 2017-07-28 03:54:56

如果你的data是一个从你的JSON解析的数组,你可以这样做:

代码语言:javascript
复制
var filtered = data.filter(function(item) {
   return item.instance && item.instance.twitteruser  
})

filtered将是一个仅包含具有twitteruser的元素的新数组

如果您只想知道是否存在,可以测试filtered的长度

代码语言:javascript
复制
if (filtered.length > 0) {
   // do something
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-28 03:52:07

如果我没理解错的话,您有一个对象数组,每个对象都包含instance键下的另一个对象,并且您希望了解这些instance对象中是否有包含键twitteruser的对象。只需编写一个for循环并检查:

代码语言:javascript
复制
const data = [{
    "id": "text-5",
    "widget": "hello",
    "params": {
      "0": "section-right",
      "name": "Right",
      "id": "section",
      "description": "",
      "class": "",
      "after_title": "",
      "widget_id": "text-5"
    },
    "instance": {
      "title": "St",
      "text": "",
      "filter": false,
      "sidebar": "se-right",
      "sidebar-order": 0,
      "inherited": "yes",
      "number": 0
    }
  },
  {
    "id": "text-5",
    "widget": "hello",
    "params": {
      "0": "section-right",
      "name": "Right",
      "id": "section",
      "description": "",
      "class": "",
      "after_title": "",
      "widget_id": "text-5"
    },
    "instance": {
      "title": "Twitter Feed",
      "twitteruser": "Stei",
      "sidebar": "sectht",
      "sidebar-order": "4"
    }
  }
];

for (var i = 0; i < data.length; i++) {
  if (data[i].instance.twitteruser !== undefined) {
    console.log("Found it at index " + i + ".");
    break;
  }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45359613

复制
相关文章

相似问题

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