我对bing API进行了javascript查询。在javascript中使用XML-http函数。
如果我打印
xmlhttp.responseText;
它正确返回如下对象:
{
"d":{
"results":[
{
"__metadata":{
"uri":"Data.ashx/Bing/SearchWeb/v1/Web?Query=\u0027weltall\u0027&$skip=0&$top=1",
"type":"WebResult"
},
"ID":"ec45ae51-c52b-4172-b64e-97f0db106110",
"Title":"Universum – Wikipedia",
"Description":"Universum, Weltall und Weltraum. Das Wort „Universum“ wurde im 17. Jahrhundert von Philipp von Zesen durch das Wort „Weltall“ eingedeutscht.",
"DisplayUrl":"/wiki/Universum",
"Url":"/wiki/Universum"
},
{
"__metadata":{
"uri":"Data.ashx/Bing/SearchWeb/v1/Web?Query=\u0027weltall\u0027&$skip=1&$top=1",
"type":"WebResult"
},
"ID":"8703f1c8-f3b7-48b0-b2cf-e33071b5006e",
"Title":"Weltall - Wissenschaft - SPIEGEL ONLINE",
"Description":"Nachrichten aus der Wissenschaft über Mensch und Technik, Natur und Weltall. Aktuelle Reportagen, Analysen, Interviews.",
"DisplayUrl":"/wissenschaft/weltall",
"Url":"spiegel.de/wissenschaft/weltall/"
}
]
}
}
到目前为止一切顺利。但是当我尝试访问所述对象的各个属性时,不会返回任何内容:
document.getElementById("main").innerHTML = xmlhttp.d.results.uri[1];
该行似乎有错误。我认为对象就像一个带有嵌套列(.d.results.uri部分)和行([1]部分)的数据库。
答案 0 :(得分:1)
xmlhttp
对象包含其responseText
属性中的响应数据。由于您正在处理JSON,因此您还必须使用javascripts JSON.parse()
对其进行解析,因此,您应该能够使用此代码段获取所需的响应数据:
data = JSON.parse(xmlhttp.responseText);
此外,我并不认为您正在尝试访问正确的节点,因为d.results.uri[1]
在您向我们展示的json中不存在。
尝试可视化您的json。我通常使用this。它允许您通过简单地点击它并复制它的路径来获得您想要的节点。