如何通过键值获取特定的json数据值

时间:2017-05-06 10:52:06

标签: javascript jquery html json

让我们说我的本地存储中有以下json

top: [ {"id","one","name":"java"},
       {"id","two","name","javascript"},
       {"id","three","name","jquery"]
     ]

这里的问题是如何通过使用名称值来获取id? 例如,如果我想获取id值"two",我需要能够使用"javascript"进行查询,然后达到值"two"。 有没有办法解决上述问题?

3 个答案:

答案 0 :(得分:2)

让我们将您的输入转换为对象,然后将其作为属性

进行访问



var input = [{
            "id":"one",
            "name":"java"
          },
          {
            "id":"two",
            "name":"javascript"
          },
          {
            "id":"three",
            "name":"jquery"
          }];

     
var result = input.reduce((acc, b) => { 
  acc[b.name] = b.id;
  return acc;
}, {});

console.log(result['javascript']);




答案 1 :(得分:0)

尝试使用Array#find。您的json无效。您可以更改下面的格式

var toper = [{
    "id": "one",
    "name": "java",
  },
  {
    "id": "two",
    "name": "javascript",
  },
  {
    "id": "three",
    "name": "jquery",
  }
]

function find_id(str) {
  return toper.find((a) => {
    if (a.name == str.trim()) {
      return a
    }
    }).id
}
console.log(find_id('javascript'))

答案 2 :(得分:0)

你的JSON有一些拼写错误。它应该像上面的Tai的例子。

从本地存储中检索它(作为文本)并使用它(作为json对象):

var myJson = JSON.parse(myText)

然后:

for (var i=0 ; i<myJson.length ; i++) {
    if myJson[i].name == "javascript" {
        var a = myJson[i].id;
        console.log(a);
    }
}