я получаю ответ тела сообщения от подписки STOMP, который выглядит следующим образом:Итерация JSon массив из ответа топать сообщений (JavaScript)
"[{\"name\":\"test\",\"version\":\"1.0.4\",\"lifetime\":25000}]"
перебирать его я разобрать его JSON и получить это:
[{"name":"test","version":"1.0.4","lifetime":25000}]
Теперь, когда я пытаюсь итерацию через него я получаю следующее сообщение об ошибке:
Uncaught TypeError: Cannot use 'in' operator to search for '86' in [{"name":"test","version":"1.0.4","lifetime":25000}]
Может ли любой орган помочь мне и сказать, что я делаю неправильно?
Вот мой код:
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:
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__:
}
'тела: ""[{\ "Имя \": \ "тест \", \ "версия \": \" 1.0.4 \ ", \" lifetime \ ": 25000}]" "' почему это дает 2 * двойную перевернутую запятую? – kanudo
Да, это была вина! На стороне сервера я обработал свой возвращенный список объектов String перед отправкой сообщения. Затем двойная инвертированная запятая помещается в ответ. Теперь я отправляю список объектов непосредственно без его разбора, и теперь он отлично работает. Спасибо за вашу помощь ! – Riemses
Ваш прием. Любимый, чтобы найти зол. :) – kanudo