2015-01-10 49 views
0

我有这样的JSON从PHP发送:用于循环槽JSON的JavaScript/jQuery的解决方案对象

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

阿贾克斯检索我,在成功啄:

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

所以问题我需要console.log(data.status/*和*/data.message)。 (忽略注释以上)

所以在JSON上面的例子我希望能够CONSOLE.LOG的followong:

(1)差错名字是无效的 (2)错误姓无效 ( 3)成功的中间名是罚款

(在上面的数字“()”只是意味着它应该怎么看起来像在Chrome控制台啄。我不需要让他们真正编号)

////////

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

你能帮我吗?

+5

这是无效的JSON文本,你应该在调用解析时出错 –

回答

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) 
} 
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); 
    }); 
} 
0

此代码的工作对我来说就像魅力。 请注意,在我的字符串中,对象用逗号分隔,而不是你的'{“status”:“error”,“message”:“名字无效”} {“status”:“error”,“message” : “姓氏无效”} { “地位”: “成功”, “消息”: “中间名是好的”}”

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); 
}); 
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; 

     } 
    });