如何在javascript中解析JSON响应(数据)。

时间:2016-09-15 09:12:16

标签: javascript json

我对javascript不熟悉。任何人都可以从这里帮助我。我的JSON响应如下:我想解析它并在表中显示。

我的javascript代码如下:

function parseData() {
    var xmlhttp = new XMLHttpRequest();
    var url = "http://beta.json-generator.com/api/json/get/NJqfdNMx-";

    xmlhttp.onreadystatechange=function() {
        if (this.readyState == 4 && this.status == 200) {
            myFunction(this.responseText);
        }
    }
    xmlhttp.open("GET", url, true);
    xmlhttp.send();

    function myFunction(response) {
        var arr = JSON.parse(response);
        var i;
        var out = "<table>";
     for(i = 0; i < arr.length; i++) {
             out += "<tr><td>" +
             arr[i].text +
            "</td><td>" +
             arr[i].text +
            "</td><td>" +
            arr[i].text +
            "</td></tr>";
      }
      out += "</table>";
      document.getElementById("id01").innerHTML = out;
    }

}

3 个答案:

答案 0 :(得分:0)

需要您的Json数据或请浏览本网站
W3School JSON Handling Methods

可以帮助你更多

答案 1 :(得分:0)

您的JSON回复包含object,但不会直接包含array,因此您无法直接循环回复。

您的JSON回复包含object,其中包含属性text,其中包含更多属性。

var arr = JSON.parse(response);
var text = arr.text;

这是text

的值
{itemCount: 31, sleepActivities: Array[26], runActivities: Array[1], freePlayActivities: Array[3], bikeActivities: Array[1]}

现在,您可以循询sleepActivitiesrunActivitiesfreePlayActivitiesbikeActivities。您可以遍历要获取数据的任何数组。

for(i = 0; i < text.sleepActivities.length; i++) {
//your code  
}

答案 2 :(得分:0)

您的回复包含对象,但您不需要使用JSON.parse。因为响应是纯JSON。您需要按照以下步骤

var arr = response.text

它将返回结果

Object {itemCount: 31, sleepActivities: Array[26], runActivities: Array[1],    freePlayActivities: Array[3], bikeActivities: Array[1]}

例如,如果您想从响应中获取sleepActivities。按照流程

var sleepActivities = response.text.sleepActivities
$.each(sleepActivities ,function(i,val){
    console.log(val.heartRateSummary.averageHeartRate);
})