从 stomp 消息响应 (JavaScript) 迭代 json 数组

Iterate through json array from stomp message response (JavaScript)

本文关键字:迭代 json 数组 JavaScript stomp 消息 响应      更新时间:2023-09-26

我从 STOMP 订阅收到消息正文响应,如下所示:

"

[{''"名称":测试",版本":1.0.4","生存期":25000}]"

为了遍历它,我将其解析为 json 并得到这个:

[{"名称":"测试","版本":"1.0.4","生命周期":25000}]

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

未捕获的类型错误:无法使用"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);
        });
    });

提前谢谢。

验证的控制台日志消息:

Frame{
ack: (headers)arguments: nullcaller: nulllength: 1name: ""prototype: frame.ack__proto__: ()<function scope>
body: ""[{'"name'":'"test'",'"version'":'"1.0.4'",'"lifetime'":25000}]""
command: "MESSAGE"
headers: Object
content-length: "99"
content-type: "application/json;charset=UTF-8"
destination: "/topic/validation"
message-id: "1dm_aduc-1672"
subscription: "sub-0"__proto__: Objectnack: (headers)__proto__: 
}

由于该值低于 [] . 您需要经历两个$.each

var jsonObj = [{"name":"test","version":"1.0.4","lifetime":25000}];
$.each(jsonObj, function(){
    $.each(this, function(i,item){
        $('body').append('<div>'+ item +'</div>');
    });
});
var jsonObj2 = {"name":"test","version":"1.0.4","lifetime":25000}; // no []
$.each(jsonObj2 , function(i,item){
    $('body').append('<div>'+ item +'</div>');
});
//////////////////////////////////////////////////////////////
var jsonObj3 = JSON.parse('[{'"name'":'"test'",'"version'":'"1.0.4'",'"lifetime'":25000}]');
                                  
$.each(jsonObj3, function(){
   $.each(this, function(i,item){
      $('body').append('<div>'+ item +'</div>');
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>