我对 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] 部分)的数据库。
最佳答案
xmlhttp
对象在其 responseText
属性中包含响应数据。由于您正在处理 JSON,因此您还必须使用 JavaScript JSON.parse()
来解析它,因此您应该能够使用以下代码片段获取所需的响应数据:
data = JSON.parse(xmlhttp.responseText);
此外,我认为您没有尝试访问正确的节点,因为您向我们展示的 json 中不存在 d.results.uri[1]
。
尝试可视化您的 json.我通常使用this 。它允许您通过简单地单击节点并复制其路径来获取所需的节点。
关于javascript - 读取 xmlhttp 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32285004/