在javascript中循环使用JSON数据无法正常工作

时间:2016-05-13 06:56:32

标签: javascript json for-loop

我从AJAX调用返回了一些JSON数据。然后我需要在javascript中解析这些数据。

数据如下:

RESTful

为什么我在数据上运行此代码时会得到多个未定义的数据? (var json是保存我的json数据的变量)

[
 {
 "id": "23",
 "date_created": "2016-05-12 14:52:42"
},
{
 "id": "25",
 "date_created": "2016-05-12 14:52:42"
}
]

但是,如果我将json直接分配给变量,如下所示:

 for(var i = 0; i < json.length; i++) {
     var obj = json[i];

     console.log(obj.id);
  }

然后它工作正常!

任何想法的家伙?感谢

2 个答案:

答案 0 :(得分:1)

确保您获得的JSON不仅仅是字符串JSON。在那种情况下,执行JSON.parse(json_string)然后循环和更多处理。

示例:

var string_json = '[{"a":1},{"b":2}]'; // may be your API response is like this
var real_json = JSON.parse(string_json); // real_json contains actual objects
console.log(real_json[0].a, real_json[1].b); // logs 1 2

答案 1 :(得分:0)

您使用的不是JSON

  • 它是一个对象数组。
  • 获得JSON后,使用方法JSON.parse解析该JSON。
  • 将此JSON分配给变量,然后对其使用迭代...

例如:

 var json ='[{"id": "23","date_created": "2016-05-12 14:52:42"},{"id": "25","date_created": "2016-05-12 14:52:42"}]';
 var parsedJson = JSON.parse(json);
 for(var i = 0; i < parsedJson.length; i++) {
     var obj = parsedJson[i];

     console.log(obj.id);
  }