我理解有关于此的多个问题,但没有一个答案对我有用
我通过.ajax响应从PHP返回一个编码的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);
我尝试了我能找到的每一个组合
答案 0 :(得分:1)
n.messageData[].roomName === 'master';
不是有效的JavaScript语法。
我相信这就是你需要做的事情:
var matches = $(JSON.parse(data.messageData)).filter(function(i,n) {
return n.roomName === 'master';
});
请注意,我在这里解析data.messageData
- 根据您向我们展示的consle输出,看起来messageData
是一个包含JSON的字符串,而不是数组。