7

我正在使用 ajax 从服务器返回一小组数据,该数据返回 JSON 数据,格式如下:

{
    "data": [
        {
            "id": "1",
            "value": "One"
        },
        {
            "id": "2",
            "value": "Two"
        },
        {
            "id": "3",
            "value": "Three"
        }
    ]
}

在客户端,这被分配给一个名为response. 我response.data用来获取内容。

问题是,有没有更简单的方法来获得价值而不做循环?我有点在寻找这样的东西response[id==2].value,它应该给我“两个”。

如果这是不可能的,我愿意接受任何建议。

4

2 回答 2

5

您可以采用功能方法并使用Array.filter方法:

var matchingResults = JSON['data'].filter(function(x){ return x.id == 2; });
// procede to use matching elements...
于 2013-08-19T05:16:26.527 回答
2

如果您使用 jQuery 的json parse 方法将其解析为 javascript 对象,您可以像普通的 javascript 数组一样引用数组中的各种项目。

像这样做:

var dataArray = $.parseJSON(myJson).data;

var theFirstData = dataArray[0]; //get the data with id "1"

或者,如果您不想使用 jQuery,可以使用JSON.parse(jsonToParse). 这是该方法的文档。

于 2013-08-19T05:06:39.457 回答