从JSON获取特定元素

时间:2015-01-18 10:43:11

标签: javascript ajax json

我知道这是一个非常简单和常见的问题;我已经阅读了一些Q / A,但我无法弄清楚如何解决我的问题。

我有来自执行SPARQL查询的AJAX调用的这个简短的json:

{
  "head": {
    "vars": [ "name" , "email" ]
  } ,
  "results": {
    "bindings": [
      {
        "name": { "type": "literal" , "value": "Name Surname" } ,
        "email": { "type": "literal" , "value": "name.surname@email.com" }
      }
    ]
  }
}

我正在搜索该应用程序的单个用户的姓名和电子邮件,所以 结果应该总是由一个元素组成。

我想要检索的是"名称"用户。 我试过像:

response["name"].value
//or
response[0]["name"]
//or
response.name

但总是错的。

如何获取名称值?感谢所有愿意帮助的人。

3 个答案:

答案 0 :(得分:2)

试试这个

response.results.bindings[0].name.value
response.results.bindings[0].email.value

<强>更新

Example

答案 1 :(得分:1)

你可以查看这里创建的小提琴

http://jsfiddle.net/uqxp4j73/

此代码的编号如下

var x='{ "head": { "vars": [ "name" , "email" ]   } ,  "results": {  "bindings": [       {         "name": { "type": "literal" , "value": "aadil keshwani" } ,         "email": { "type": "literal" , "value": "name.surname@email.com" }       }     ]   }}';
obj = JSON && JSON.parse(x) || $.parseJSON(x);
console.log(obj);
console.log(obj["results"]["bindings"][0]["name"]["value"]);
alert(obj["results"]["bindings"][0]["name"]["value"]);

希望这会有所帮助:)

答案 2 :(得分:1)

在JSON中,您始终必须提供您想要覆盖的属性的完整路径。假设您已将解析后的JSON存储在变量响应中,以下路径将为您提供相应的值。

response.results.bindings[0].name.value的名字 response.results.bindings[0].email.value电子邮件

建议您浏览http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/以获取JSON的基本概念。