2009-12-28 100 views
1

我的JSON对象是这样的:JSON元素选择

[{"aid":"1","atitle":"Ameya R. Kadam"},{"aid":"2","atitle":"Amritpal Singh"},{"aid":"3","atitle":"Anwar Syed"},{"aid":"4","atitle":"Aratrika"},{"aid":"5","atitle":"Bharti Nagpal"}] 

正如你所看到的名称通过它们的相关援助的区别。现在假设我想显示堆叠的名字:4.我应该写些什么?

回答

1

您可以循环在你的阵列,测试的元素,为每一位,如果它的援助是4:

var list = [{"aid":"1","atitle":"Ameya R. Kadam"}, 
     {"aid":"2","atitle":"Amritpal Singh"}, 
     {"aid":"3","atitle":"Anwar Syed"}, 
     {"aid":"4","atitle":"Aratrika"}, 
     {"aid":"5","atitle":"Bharti Nagpal"} 
    ]; 
var length = list.length; 
var i; 
for (i=0 ; i<length ; i++) { 
    if (list[i].aid == 4) { 
     alert(list[i].atitle); 
     break; // Once the element is found, no need to keep looping 
    } 
} 

将给予“Aratrika

1

警报,你可以简单的做

var someValue = [{"aid":"1","atitle":"Ameya R. Kadam"},{"aid":"2","atitle":"Amritpal Singh"},{"aid":"3","atitle":"Anwar Syed"},{"aid":"4","atitle":"Aratrika"},{"aid":"5","atitle":"Bharti Nagpal"}]; 
console.log(someValue[3]["atitle"]); 

这应该给你 “Aratrika”

或者你凑ld循环并遍历所有对象。

4

我会建议修改JSON,如果可能的话,使用AID作为对象列表的关键字而不是发送列表。如果你不能改变JSON,我会把这些对象放到一个关联数组中,并使用AID作为关键字,这样你就可以根据需要直接找到对象。

0

你可以做(​​据我所知)的唯一的事情,被搜索的帮助:使用for回路4对:

a = [ /* data here ... */ ]; 
for (var i = 0; i < a.length; i++) { 
    if (a[i].aid == 4) { 
     name = a[i].name; 
     break; 
    } 
} 

我不认为有一个更简单的方法来做到这一点。