我有来自node / express js的'json return'但解析它有问题。需要一些关于如何这样做的建议。
下面是我得到的json字符串。
{
"comments": [
{
"comment": "wew",
"published": 1388843496312,
"username": "lol",
"oauthID": "1234565"
},
{
"oauthID": "1234565",
"username": "lol2",
"published": 1388843506898,
"comment": "wew!!"
}
]
}
下面是我用来解析这个json但是工作的代码。这是onSuccess函数
success: function(data, status) {
data = $.trim(data);
var obj = jQuery.parseJSON(data);
alert(obj.comments);
}
编辑:这是我的要求
$.ajax({
type: "POST",
url: "/ajax/loadcomments",
data: {
ytid: ytkvid
},
cache: false,
success: function(data, status) {
data = $.trim(data);
var obj = $.parseJSON(data);
alert(obj.comments);
}
});
我需要使用循环打印出json中的值。
谢谢!
答案 0 :(得分:2)
你能试试吗,
$.each(obj.comments, function(index, value) {
console.log(index+"::"+value);
});
答案 1 :(得分:1)
如果你已经指定ajax调用是json类型,你不要解析字符串,你已经有了一个对象。
为了遍历所有评论,它将是这样的:
$.ajax({
type: "POST",
url: "/ajax/loadcomments",
data: {
ytid: ytkvid
},
cache: false,
success: function(data, status) {
var comments = data.comments, i = 0, len = comments.length;
for (; i < len; i += 1) {
console.log(comments[i].comment);
}
}
});
答案 2 :(得分:0)
$.ajax({
type: "POST",
dataType: "json",
url: "/ajax/loadcomments",
data: {
ytid: ytkvid
},
cache: false,
success: function(data, status) {
alert(data.comments);
}
});