我知道这是一个非常简单和常见的问题;我已经阅读了一些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
但总是错的。
如何获取名称值?感谢所有愿意帮助的人。
答案 0 :(得分:2)
试试这个
response.results.bindings[0].name.value
response.results.bindings[0].email.value
<强>更新强>
答案 1 :(得分:1)
你可以查看这里创建的小提琴
此代码的编号如下
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的基本概念。