如何在ajax响应(php)中解析JSON数组?

时间:2017-06-15 19:16:20

标签: javascript php json ajax

问题可能看似简单,但我无法得到答案。

$.ajax({
  type: "POST",
  url: "../api/simplerequest/",
  data: {'varr': "data"},
  dataType: 'JSON',
  complete: function (res) {
      console.log(res);
      var r = JSON.parse(res.responseText);
      console.log(r.data[0].rock);
  }
});

res 具有以下类型时:

{
  { 
    "data" : [{
      "rock" : "north",
      "status" : 1
    }]
  }
}

JSON.parse(RES);做的工作,但是当涉及阵列时:

{
  { 
    "data" : [{
      "rock" : "north",
      "status" : 1
    },
    {
      "rock" : "south",
      "status" : 1
    },
    {
      "rock" : "east",
      "status" : 2
    }]
  }
}

我试图像

那样解析它
var r = JSON.parse(res.responseText);//as previously, but exactly here comes the error
console.log(r.data[0].rock); //nothing works

那么如何解析那种'数组'?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您的json无效,并将{{更改为{

var json = { 
    "data" : [{
      "rock" : "north",
      "status" : 1
    },
    {
      "rock" : "south",
      "status" : 1
    },
    {
      "rock" : "east",
      "status" : 2
    }]
  };

console.log(json.data[0].rock);
console.log(json.data[1].rock);
console.log(json.data[2].rock);

您有以下无效的json有错误:

//invalid json
var json = {
  { 
    "data" : [{
      "rock" : "north",
      "status" : 1
    },
    {
      "rock" : "south",
      "status" : 1
    },
    {
      "rock" : "east",
      "status" : 2
    }]
  }
}

console.log(json.data[0].rock);