【发布时间】:2013-05-26 22:11:58
【问题描述】:
我在下面使用这个代码
$.getJSON('/list_pat', function(data){
$.each(data, function(key, val) {
console.log("val "+ val);
});
});
/list_pat 返回的位置
"{'patients':[{'ailment': [{'ailment': 'alksjdnfkajcbkasjcbksd', 'updatedby': ''
'datecreated': '2013-05-20 18:53:13', 'ailtag': '11', 'prescription': 'kjnckasjcnksjdnc',
'dateupdated': '', 'images': [{'desc': 'ksjcnksajcnd', 'datecreated': '', 'addedby': '2013-
05-20 18:53:22', 'imgtag': '30'}], 'createdby': '', 'procedure': 'kjnaksjncksdjnc'}]]}
在尝试上述代码后,我在 chrome 浏览器的控制台上收到错误消息。
Uncaught TypeError: Cannot use 'in' operator to search for '143' in "{'patients':[{'ailment': [{'ailment': 'alksjdnfkajcbkasjcbksd', 'updatedby': ''
'datecreated': '2013-05-20 18:53:13', 'ailtag': '11', 'prescription': 'kjnckasjcnksjdnc',
'dateupdated': '', 'images': [{'desc': 'ksjcnksajcnd', 'datecreated': '', 'addedby': '2013-
05-20 18:53:22', 'imgtag': '30'}], 'createdby': '', 'procedure': 'kjnaksjncksdjnc'}]]}
143 是字符串的总长度。我是不是错过了什么。我只想解析 JSON 。
【问题讨论】:
-
如果这真的是返回值,它是一个 JSON 编码的字符串,包含(有点类似于)JSON 数据。所以你需要再次解码。
-
JSON 文件不以双引号开头。我想这就是问题所在。
-
我怀疑服务器已经对其对象进行了两次编码。但第一次看起来不像是有效的 JSON。