JavaScript/jQuery 遍历 JSON 个对象的解决方案

JavaScript/jQuery solution for looping through JSON objects

我收到了 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) 错误 Lastname is invalid (3) success 中间名就可以了

(“()”中的上述数字仅表示它在 chrome 中的控制台中的样子。我不需要对它们进行实际编号)

////////

我实际上想要完成的是根据 status.value(成功或错误)显示带有 alrtify.js 的 success/error 消息。我不想在一个通知中全部显示它们。我希望每个 error/success 都显示为单独的通知。为此,我需要遍历它们。

假设您实际收到的是一个数组,而不是您在那里显示的无效 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);
    });
}

这段代码对我来说就像一个魅力。 请注意,在我的字符串中对象是用逗号分隔的,而不是你的 '{"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"}]';

var parsedData = JSON.parse(data);

parsedData.forEach(function(item, index) {
    alert(item.status + " - " + item.message);
    console.log(item.status + " - " + item.message);
});
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;

        }
    });

请查看您的 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)
}