我对这些数据有疑问,
我的json数组数据包含:
{"list_file":["{\"id\":\"511\",\"name\":\"Jellyfish.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":775702,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}","{\"id\":\"510\",\"name\":\"Hydrangeas.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":595284,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}","{\"id\":\"509\",\"name\":\"dudnzoizu ufoiuzio fueoifezuoiufifzeouofufzeoiuiofuz oife iofez.jpg\",\"projectId\":\"12539\",\"projectName\":\"project namessszd ddddzzde\",\"time\":\"1331843704\",\"size\":885242,\"timeRightFormat\":\"03\\\/15\\\/12 01:35:04 PM\",\"userFirstName\":\"Jerome\",\"userLastName\":\"Test\",\"userId\":\"8\"}"]}
当我循环遍历这样的元素时
$.each(data.list_file, function(i, file) {
alert(file.id);
});
我在alert()框中未定义,但如果我这样做而不是
$.each(data.list_file, function(i, file) {
alert(file);
});
我得到了正确的json线。
谢谢
编辑:这次使用整个数组
答案 0 :(得分:2)
答案 1 :(得分:1)
我假设你正在进行ajax调用。您需要指定“json”数据类型,以便jquery将其解析为json。
$.ajax({
url: url,
dataType: "json",
success: function (data) {
// ...
}
})
更新:
您的json数组是一个json字符串数组,请尝试将其更改为对象数组:
{ "list_file": [ "{...}" ]}
应该是
{ "list_file": [ {...} ]}
答案 2 :(得分:1)
list_file中包含的内容是字符串而不是Object。实际上,你有3个字符串..每个对象...尝试使用下面的函数,
$.each(data['list_file'], function(i, file) {
alert(JSON.parse(file).id);
});
答案 3 :(得分:0)
这是不有效的json
你应该用括号括起来!
你有很多必须在数组中的对象。
先修复此问题。稍后检查。