在JSON对象

时间:2015-04-29 07:25:36

标签: javascript json

我从JSP

获得了JSON对象数组
"Titles":[                          
    {
    "Book3" : "BULLETIN 3"
    }   
    ,
    {
    "Book1" : "BULLETIN 1"
    }
    ,
    {
    "Book2" : "BULLETIN 2"
    }    
]

在JS方面,它被解析,我看到一个包含3个对象的数组。 现在,我想在传递String键时找到/识别一个值。

例如当我通过“Book2”时,我应该得到“BULLETIN 2”的价值。 有人可以帮我确定方法吗?

4 个答案:

答案 0 :(得分:8)

试试这个



dumpToSysErr




答案 1 :(得分:4)

要实现这一点,你必须循环遍历数组元素的键并测试数组中是否存在给定键,如果是,则获取其值:

var jsonTitles = [                          
   { "Book3" : "BULLETIN 3" },
   { "Book1" : "BULLETIN 1" },
   { "Book2" : "BULLETIN 2" }    
]

function getValue(key, array) {
  for (var el in array) {
    if (array[el].hasOwnProperty(key)) {
      return array[el][key];
    }
  }
}

alert(getValue("Book1", jsonTitles));

我们使用element[key] element is array[el]来获取给定key的值。

答案 2 :(得分:1)

让我们创建一个函数来获取数组中的对象,它接受两个参数:数组和要获取的属性的键:

function getObjectInArray(arr, key) {    
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].hasOwnProperty(key)) return arr[i][key];
    }
}

循环遍历每个对象以查找该特定键。

解决方案:现在您可以执行getObjectInArray(titlesJSONArray, "Book2")之类的操作,并返回“公告2”。

var titlesJSONArray = [ { "Book3": "BULLETIN 3" }, ... ]; // and so on
var book2 = getObjectInArray(titlesJSONArray, "Book2"); // => "BULLETIN 2"

答案 3 :(得分:1)

对于Javascript中的此类数组/集合操作,我建议您使用underscorejs库。它提供的功能对我来说,使一切变得更加简单。在你的情况下:

pom.xml

Here是我所建议的工作小提琴。