用于循环JSON对象的JavaScript / jQuery解决方案

时间:2015-01-10 20:05:42

标签: javascript jquery ajax json

我从PHP发送了这种JSON:

{"status":"error","message":"Firstname is invalid"}{"status":"error","message":"Lastname is invalid"}{"status":"success","message":"Middle name is fine"}

Ajax正在检索我成功的事情:

success:function(data){
data=JSON.parse(data);
//need to loop trough data here
}

所以问题是我需要立即调用console.log(data.status / * AND * / data.message)。 (忽略上面的评论)

所以在上面的JSON示例中,我希望能够在console.log中进行以下操作:

(1)错误名字无效 (2)错误姓氏无效 (3)成功中间名是好的

("()&#34中的上述数字;只是意味着它在chrome中的控制台应该是什么样子。我不需要让它们实际编号)

////////

我实际上要完成的是根据status.value(成功或错误)显示alrtify.js的成功/错误消息。我不想在一个通知中显示所有内容。我希望每个错误/成功都显示为单独的通知。我需要循环使用它们。

4 个答案:

答案 0 :(得分:0)

假设您实际收到的是一个数组,而不是您在那里显示的无效JSON:

success:function(data){
    data=JSON.parse(data); // you probably shouldn't be using this line
    data.forEach(function (item) {
        console.log(item.status + ' ' + item.message);
    });
}

答案 1 :(得分:0)

这段代码对我来说就像一个魅力。 请注意,在我的字符串对象中用逗号分隔,而不是你的' {"状态":"错误","消息":& #34;名字无效"} {"状态":"错误","消息":"姓氏无效"} { "状态":"成功","消息":"中间名称很好"}'

var data = '[{"status":"error","message":"Firstname is invalid"}, {"status":"error","message":"Lastname is invalid"}, {"status":"success","message":"Middle name is fine"}]';

var parsedData = JSON.parse(data);

parsedData.forEach(function(item, index) {
    alert(item.status + " - " + item.message);
    console.log(item.status + " - " + item.message);
});

答案 2 :(得分:0)

success:function(data){
    data=JSON.parse(data); // you probably shouldn't be using this line
    var data = $.parseJSON(item);
        for (var i=0; i < data.length; i++){
            var obj = data[i];
            var status = obj.status;
            var message = obj.message;

        }
    });

答案 3 :(得分:0)

请查看您的JSON格式。应该是这样的:

[{"status":"error","message":"Firstname is invalid"},{"status":"error","message":"Lastname is invalid"},{"status":"success","message":"Middle name is fine"}];

所以最终你将能够循环。

var data = [{"status":"error","message":"Firstname is invalid"},    
            {"status":"error","message":"Lastname is invalid"},    
            {"status":"success","message":"Middle name is fine"}];

for(var i in data)
{
 console.log(data[i].message)
}