我正在使用ajax从服务器获取一小组数据,这些数据以下列格式返回JSON数据:
{
"data": [
{
"id": "1",
"value": "One"
},
{
"id": "2",
"value": "Two"
},
{
"id": "3",
"value": "Three"
}
]
}
在客户端,将其分配给名为response
的变量。我使用response.data
来获取内容。
问题是,是否有更简单的方法来获取值而不进行循环?
我有点像这样的response[id==2].value
,它应该给我“两个”。
如果不可能,我愿意接受任何建议。
答案 0 :(得分:3)
您可以采用功能方法并使用Array.filter方法:
var matchingResults = JSON['data'].filter(function(x){ return x.id == 2; });
// procede to use matching elements...
答案 1 :(得分:2)
如果使用jQuery的json parse method之类的东西将其解析为javascript对象,则可以像普通的javascript数组一样引用数组中的各个项目。
这样做:
var dataArray = $.parseJSON(myJson).data;
var theFirstData = dataArray[0]; //get the data with id "1"
或者,如果您不想使用jQuery,则可以使用JSON.parse(jsonToParse)
。 Here're the docs for that method.