读取xmlhttp对象

时间:2015-08-29 10:26:48

标签: javascript

我对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]部分)的数据库。

1 个答案:

答案 0 :(得分:1)

xmlhttp对象包含其responseText属性中的响应数据。由于您正在处理JSON,因此您还必须使用javascripts JSON.parse()对其进行解析,因此,您应该能够使用此代码段获取所需的响应数据:

    data = JSON.parse(xmlhttp.responseText);

此外,我并不认为您正在尝试访问正确的节点,因为d.results.uri[1]在您向我们展示的json中不存在。

尝试可视化您的json。我通常使用this。它允许您通过简单地点击它并复制它的路径来获得您想要的节点。