处理JSON对象数组

时间:2011-04-20 21:15:13

标签: javascript json

我得到了一个非常简单的问题:

看看这个JSON字符串:

this.objects = [{"pid":"2","x":"10","y":"10"}]; // only one i know

现在我想像这样解决一个对象:

 this.objects.pid[2]

我知道在这种情况下这是毫无意义的,因为你可以像访问它一样:

 this.objects[0]

问题是我需要通过对象id而不是数组索引来对JSON中的对象数组进行处理。对此有一个很好的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

function getObject(id, array) {
    for (var i = 0; i < array.length; i++) {
        if (array[i].pid ==  id) {
             return array[i]
        }
    }
}

一个获取id和数组并返回对象的函数。基本上遍历数组并找到带有id的元素。这可以选择缓存以提高速度。

答案 1 :(得分:2)

它不需要是单个元素数组,所以试试这个......

this.objects = {"pid":"2", "x":"10", "y":"10"};

您可以通过以下方式阅读:

this.objects.pid;
this.objects['pid'];

如果你想要多个x,y等列表。然后尝试这样的事情:

this.objects = { "2": {"x": "10", "y": "10"} };
this.objects["2"].x;
this.objects["2"]["x"];

基本上,在这种情况下,只需使用“pid”作为每个包含每个项目所需属性的对象的键。

相关问题