无法在JSON字符串,以便访问嵌套值从Ajax响应
问题描述:
我知道有这个多的问题,但没有一个答案是为我工作无法在JSON字符串,以便访问嵌套值从Ajax响应
我经历了阿贾克斯响应返回从PHP的enocoded JSON字符串
$.ajax({
url : ajax_object.ajax_url,
type : 'post',
data : {
action: 'rt_check_for_new_messages',
uid : $uid,
pid : $pid,
sessionStart : $sessionStart,
room_array :$roomArray,
messages_array : $messagesArray,
},
dataType : "json",
success: function(data) {
console.log(data);
在控制台中我得到
{html: "[]", messageData: "[{"roomName":"master","msgID":1638}, {"roomName":"beta","msgID":1640}]"}
所以现在我需要访问“ROOMNAME”这样我就可以筛选出匹配
var matches = $(data).filter(function(i,n) {
return n.messageData[].roomName === 'master';
});
console.log(matches);
我想尽组合,我能找到
答
n.messageData[].roomName === 'master';
是无效的JavaScript语法。
我相信这是你需要做什么:
var matches = $(JSON.parse(data.messageData)).filter(function(i,n) {
return n.roomName === 'master';
});
请注意,我在这里解析data.messageData
- 根据您向我们展示了CONSLE输出,它看起来像messageData
是包含JSON字符串,而不是一个数组。