Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从ajax响应访问JSON字符串中的嵌套值_Json_Ajax_Filter_Nested - Fatal编程技术网

无法从ajax响应访问JSON字符串中的嵌套值

无法从ajax响应访问JSON字符串中的嵌套值,json,ajax,filter,nested,Json,Ajax,Filter,Nested,我知道这方面有很多问题,但没有一个答案对我有用 我通过.ajax响应从PHP返回一个enocoded JSON字符串 $.ajax({ url : ajax_object.ajax_url, type : 'post', data : { action: 'rt_check_for_new_messages', uid : $uid, pid : $pid, sessionStart : $sessionSt

我知道这方面有很多问题,但没有一个答案对我有用

我通过.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);

我尝试了我能找到的所有组合不是有效的JavaScript语法

我相信这就是你需要做的:

var matches = $(JSON.parse(data.messageData)).filter(function(i,n) {
    return n.roomName === 'master';
});
请注意,我正在解析
data.messageData
——根据您向我们展示的consle输出,看起来
messageData
是一个包含JSON的字符串,而不是一个数组