JSON解析不工作

JSON解析不工作

问题描述:

我正在从我的服务器此响应与Ajax调用JSON解析不工作

var data = 
[{ 
    "Response": { 
     "ResponseStatus": { 
      "Code": "1", 
      "Description": "Success" 
     }, 
     "TransactionReference": {} 
    } 
}, { 
    "Response": { 
     "ResponseStatus": { 
      "Code": "1", 
      "Description": "Success" 
     }, 
     "TransactionReference": {} 
    } 
}]; 

Ajax调用:

$.ajax({ 
       "type":"POST", 
       "url":"'.CHtml::normalizeUrl(array("packaging/calltag")).'", 
       "data":$("#returnrequestcreationform").serialize(), 
       "success":function(data){ 
        $.each(data, function (key, val) { 
         console.log(key + val); 
        }); 
       }, 
}); 

但在日志中,它给了我这个

0[ 
1{ 
2" 
3R 
4e 
5s 
6p 
7o 
8n 

我试过JSON.parse()和jQuery.parseJSON(),当试图读取这个对象时,它给了我“意外的输入结束”错误。它看起来像一个适当的JSON回到我身边?任何想法为什么它循环它,就像它是一个字符串?

+1

我不禁注意到缺少分号。 ('var data = ...') – 0112 2014-11-03 20:51:49

+0

我没有使用该代码,它只是显示正在设置的数据。我正在使用通过chrome中的调试器的步骤,以及数据变量正在设置的是成功函数内[]中的内容 – Angelo 2014-11-03 20:53:23

+0

这对于将代码粘贴到控制台以测试它的人来说更是如此。 – 0112 2014-11-03 20:55:33

你需要告诉该函数的数据类型是

$.ajax({ 
      "type":"POST", 
      "url":"'.CHtml::normalizeUrl(array("packaging/calltag")).'", 
      "data":$("#returnrequestcreationform").serialize(), 
      "dataType": "json", 
      "success":function(data){ 
       $.each(data, function (key, val) { 
        console.log(key + val); 
       }); 
      }, 
}); 
+0

这工作。我以为我已经尝试过了,问题最终导致我的回复中有额外的文本,因为视图正在与echo JSON_ENCODE($ res)一起呈现; – Angelo 2014-11-03 21:13:50

使用的dataType选项为您查询调用Ajax告诉它你期望的JSON响应什么。

http://api.jquery.com/jquery.ajax/