无法在JSON字符串,以便访问嵌套值从Ajax响应

无法在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字符串,而不是一个数组。