1

我在下面使用这个代码

$.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 。

4

2 回答 2

2

您尝试使用的 JSON 无效。

有效的 JSON 字符串由双引号 (") 封装,其中您的 JSON 字符串由单引号 (') 封装。

于 2013-05-26T22:16:08.483 回答
1

您在 json 中有语法错误:

data = {'patients':[
            {'ailment': [
                {'ailment': 'alksjdnfkajcbkasjcbksd', 
                 'updatedby': '',  //missing ","
                 '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'}]
             } //missing "\}"
        ]};
于 2013-05-26T22:19:59.060 回答