我有这种JSON输出格式,但我无法弄清楚如何检查密钥和值。这是我的JSON输出:
[
{"msgone":
{"msgId":"1",
"custName":"MYCUST"}
},
{"msgtwo":
{"msgId":"2",
"custName":"MYCUST"}
},
{"msgtwo":
{"msgId":"2",
"custName":"MYCUST"}
}
]
你去吧。现在我想要做的是首先我想循环每一个并检查它是否msgone
然后做一些事情。如果是msgtwo
则执行某些操作。如果我们说当前循环为msgone
,那么我想要将所有对象msgId
和custName
进行进一步处理。
这是我目前所拥有的代码的一部分:
success: function(msg){
$('#res').val(msg); //just echo to debug
var returnedRep = $.parseJSON(msg);
$.each(returnedRep, function(index, value) {
if(returnedRep[index] === 'msgone'){
//give me the values
}
if(returnedRep[index] === 'msgtwo'){
//give me the values
}
});
}
感谢您对此的反馈。我是JSON的新手。但是由于它的形式不同,我无法通读它。谢谢。
更新: 这就是我编写输出我的JSON数据的方式:
$globArr [] = array(
"type" => "msgone",
"data" => array(
"msgId" => $details[0],
"custName" => $details[1]
)
);
每次收到消息时,我都会将其存储在$globArr
中。我无法弄清楚如何制作像@DemoUser建议的结构。有人请帮助我。
答案 0 :(得分:0)
如果您自己创建json数据,那么您可以使数据保持一致,例如:
[
{
"type": "msgone",
"data" : [
{
"msgId":"1",
"custName":"MYCUST"
}
]
},
{
"type" : "msgtwo",
"data" : [
{
"msgId":"2",
"custName":"MYCUST"
},
{
"msgId":"2",
"custName":"MYCUSTSOME"
},
]
}
]
您可以将其解析为:
success: function(msg){
$('#res').val(msg); //just echo to debug
var returnedRep = $.parseJSON(msg);
$.each(returnedRep, function(key, val) {
var type = val.type;
var dataArr = val.data;
$.each(dataArr, function(idx, v) {
alert(v.msgId);
});
});
}
PHP中的json结构更新::(这为你提供了我提到的所需格式),
$arr = array();
$arr[] = array(
"type" => "msgOne",
"data" => array(
array("msgId" => 1, "custName" => "Some name")
)
);
$arr[] = array(
"type" => "msgTwo",
"data" => array(
array("msgId" => 2, "custName" => "Some second name"),
array("msgId" => 3, "custName" => "Some third name"),
)
);
echo json_encode($arr);