从stomp消息响应(JavaScript)遍历json数组

从stomp消息响应(JavaScript)遍历json数组,javascript,json,stomp,Javascript,Json,Stomp,我从STOMP订阅中获得消息体响应,如下所示: “[{\'name\':\'test\',\'version\':\'1.0.4\',\'lifetime\':25000}]” 要对其进行迭代,我将其解析为json并获得以下结果: [{“名称”:“测试”,“版本”:“1.0.4”,“寿命”:25000}] 现在,当我尝试遍历它时,我得到以下错误消息: 未捕获的TypeError:无法使用'in'运算符在[{“名称”:“测试”,“版本”:“1.0.4”,“生存期”:25000}]中搜索'86' 有

我从STOMP订阅中获得消息体响应,如下所示:

“[{\'name\':\'test\',\'version\':\'1.0.4\',\'lifetime\':25000}]”

要对其进行迭代,我将其解析为json并获得以下结果:

[{“名称”:“测试”,“版本”:“1.0.4”,“寿命”:25000}]

现在,当我尝试遍历它时,我得到以下错误消息:

未捕获的TypeError:无法使用'in'运算符在[{“名称”:“测试”,“版本”:“1.0.4”,“生存期”:25000}]中搜索'86'

有人能帮我说我做错了什么吗

这是我的密码:

      stompClient.subscribe('/topic/validation', function(validationMessage){

        console.log(validationMessage.body);
        // --> "[{\"name\":\"test\",\"version\":\"1.0.4\",\"lifetime\":25000}]"
        var jsonObj = JSON.parse(validationMessage.body);
        console.log(jsonObj);
        // --> [{"name":"test","version":"1.0.4","lifetime":25000}]

        $.each(jsonObj, function(i,item){
            console.log(item);
        });
    });
提前谢谢

validationMessage的控制台日志:

帧{
ack:(头)参数:nullcaller:nulllength:1name:“原型:frame.ack\uuuuuuu proto:()
正文:[{“名称\”:“测试\”,“版本\”:“1.0.4 \”,“寿命\”:25000}]
命令:“消息”
标题:对象
内容长度:“99”
内容类型:“application/json;charset=UTF-8”
目标:“/topic/validation”
消息id:“1dm_aduc-1672”
订阅:“sub-0”\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

}
因为值在
[]
下。您需要通过两个
$。每个

var jsonObj=[{“name”:“test”,“version”:“1.0.4”,“life”:25000}];
$.each(jsonObj,function(){
$。每个(此,功能(i,项){
$('body')。追加(“”+项+“”);
});
});
var jsonObj2={“名称”:“测试”,“版本”:“1.0.4”,“寿命”:25000};//否[]
$.each(jsonObj2,函数(i,项){
$('body')。追加(“”+项+“”);
});
//////////////////////////////////////////////////////////////
var jsonObj3=JSON.parse(“[{“name\”:“test\”,““version\”:“1.0.4\”,““lifety\”:25000}”);
$.each(jsonObj3,function(){
$。每个(此,功能(i,项){
$('body')。追加(“”+项+“”);
});
});

因为值在
[]
下。您需要通过两个
$。每个

var jsonObj=[{“name”:“test”,“version”:“1.0.4”,“life”:25000}];
$.each(jsonObj,function(){
$。每个(此,功能(i,项){
$('body')。追加(“”+项+“”);
});
});
var jsonObj2={“名称”:“测试”,“版本”:“1.0.4”,“寿命”:25000};//否[]
$.each(jsonObj2,函数(i,项){
$('body')。追加(“”+项+“”);
});
//////////////////////////////////////////////////////////////
var jsonObj3=JSON.parse(“[{“name\”:“test\”,““version\”:“1.0.4\”,““lifety\”:25000}”);
$.each(jsonObj3,function(){
$。每个(此,功能(i,项){
$('body')。追加(“”+项+“”);
});
});

使用jsonObj的修复输入,您的解决方案可以正常工作。但是,当我将validationMessage.body放到jsonObj(var jsonObj=JSON.parse(validationMessage.body))时,又出现了相同的错误消息。但是jsonObj的价值是完全一样的。谢谢你的帮助,卡努多。这也行得通。但是,当我使用validationMessage.body作为输入时,仍然存在问题。它的值与您使用的字符串完全相同。但仍然不可能循环。这可能是编码问题吗?这很奇怪。我在我的第一篇文章中添加了validationMessage的价值。使用jsonObj的修复输入,您的解决方案可以工作。但是,当我将validationMessage.body放到jsonObj(var jsonObj=JSON.parse(validationMessage.body))时,又出现了相同的错误消息。但是jsonObj的价值是完全一样的。谢谢你的帮助,卡努多。这也行得通。但是,当我使用validationMessage.body作为输入时,仍然存在问题。它的值与您使用的字符串完全相同。但仍然不可能循环。这可能是编码问题吗?这很奇怪。我在我的第一篇文章中添加了validationMessage的值。
正文:[{\\“name\”:\“test\”,\“version\”:“1.0.4\,“lifetime\”:25000}]“
为什么给2*双倒逗号?是的,这是错误!在服务器端,在发送消息之前,我将返回的对象列表解析为字符串。然后将双倒逗号放在响应中。现在我直接发送对象列表而不进行解析,现在它工作正常。谢谢你的帮助!欢迎光临。我喜欢找到太阳<代码>正文:[{“名称\”:“测试\”,“版本\”:“1.0.4\”,“寿命\”:25000}],
为什么会给出2*双倒逗号?是的,这是错误!在服务器端,在发送消息之前,我将返回的对象列表解析为字符串。然后将双倒逗号放在响应中。现在我直接发送对象列表而不进行解析,现在它工作正常。谢谢你的帮助!欢迎光临。我喜欢找到太阳