我從一個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
是的,那是錯!在服務器端,我在發送消息之前將返回的對象列表解析爲字符串。然後把雙引號逗號放到響應中。現在我直接發送Object列表而不解析它,現在它工作正常。謝謝你的幫助 ! – Riemses
歡迎您。喜歡找到解決方案。 :) – kanudo