我从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的成功/错误消息。我不想在一个通知中显示所有内容。我希望每个错误/成功都显示为单独的通知。我需要循环使用它们。
答案 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)
}