如何使用jquery在json中搜索

时间:2016-06-23 21:57:19

标签: javascript jquery json

我在本地文件中有JSON数据,并且我已成功使用jQuery加载。现在我需要仅搜索pId =“foo1”

JSON

{
 "1":{
      "id": "one",
      "pId": "foo1",
      "cId": "bar1"
     },
 "2":{
      "id": "two",
      "pId": "foo2",
      "cId": "bar2"
     },
 "3":{
      "id": "three",
      "pId": "foo3",
      "cId": "bar3"
     }
}

的jQuery

id = "1"; // Or whatever
var entry = objJsonResp[id];

console.log(entry);


但它显示了ID,pIdcId值,我只需要pId值,而不是其他值。
那么获得pId

值的最佳方法是什么?

4 个答案:

答案 0 :(得分:1)

调用objJsonResp[id]会返回整个第一个对象。

尝试使用:

console.log(entry.pId);

答案 1 :(得分:0)

obj = JSON.parse("{\"1\":{\"id\": \"one\",\"pId\": \"foo1\",\"cId\": "bar1"},"2":{"id": "two","pId": "foo2","cId": "bar2"},"3":{"id": "three","pId": "foo3","cId": "bar3"}}");
// These \ are called escape chars, they say javascript that " is part of string.

在此之后你有了JSON的对象,所以你有一个父对象[obj]和3个子对象[“1”,“2”,“3”],其属性为id,pId,cId。要获得孩子的财产,你想要像父[child_name] [property_name]那样:

pid1 = obj["1"]["pId"];  // returns foo1
pid2 = obj["2]["pId"]; //return foo2

但你要求的是JSON.parse()函数,它为你提供了代表你的JSON的对象

答案 2 :(得分:0)

所以我通过帮助@Hackerman和@prashkr解决了
两条评论都是对的。
因此,根据我的要求,仅获得 pId 值的最终解决方案就是在上面的评论中提供这样的目标。

console.log(entry.pId);
console.log(entry['pId']);

答案 3 :(得分:-3)

显然,与您通信的服务器是(唯一)可以向您返回适当的结果集的人。因此,您与服务器的通信必须(某种程度上)包含该搜索条件,以便服务器的回复仅包含感兴趣的记录。这将需要您在客户端和服务器端进行额外的编程。 。 。