2014-02-26 62 views
0

我从python服务器接收json文件,我尝试使用ajax进行解析,以便在单独的下拉菜单中根据类别(egdata_provider,人口普查)显示值。但是我经常得到以下内容错误: 未捕获错误:语法错误,无法识别的表达式:[{“data_provider”:“census”,“data_year”:“2010”,“data_series”:“sf1”,“tb_name”:“h1”,“summ_level”: “160”},{“data_provider”:“census”,“data_year”:“2010”,“data_series”:“sf1”,“tb_name”:“p1”,“summ_level”:“050”}]使用ajax解析json

请帮助我!以下是我写的代码。

<!DOCTYPE html> 
<html> 
<head> 
<title>Test</title> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
<script type="text/javascript"> 
    function codeAddress() { 
     var ajax = $.ajax({ 
      //data : params, 
      type : "GET", 
      crossDomain: true, 
      dataType: "json", 
      //jsonp: "callback", 
      //callbackParameter: "callback", 
      //contentType : "application/x-www-form-urlencoded", 
      url : "http://0.0.0.0:8080/" 

     }); 

     ajax.done(function() { 
      var response=ajax.responseText; 
      var json = jQuery.parseJSON(response); 


      $(json).each(function(i,val){ 
       $.each(val,function(k,v){ 
        console.log(k+" : "+ v); 
       }); 
      }); 
     }); 

     ajax.fail(function() { 
      alert("fail"); 
     }); 


     ajax.always(function() { 
      alert("done"); 
     }); 
    } 
</script> 
</head> 
<body id="b1" onload="codeAddress();"> 

</body> 
</html> 
+1

鉴于你的JSON和代码(但网址更改为一个在那里我已经主持了JSON) ,[我不能重现该问题](http://jsbin.com/kefitesu/1/)。 – Quentin

+1

@Quentin字符串中是否可能有未转义的UTF控制字符? – crush

+0

@crush - 或任何隐形角色。这是相当可能的问题。 – Quentin

回答

0

如果您已经在使用jQuery,那就让他们为您做出呕心沥血的工作吧!

$.getJSON("http://0.0.0.0:8080/", function(json){ 
// do your JSON work here 
}); 

如果因任何原因,你不能使用$ .getJSON,在$阿贾克斯的要求,设置像我有在这里success回调函数。

+1

这不仅仅是一个答案而是一个评论。在所有需要返回“JSON”的情况下,也不能使用'$ .getJSON'。 – crush

+0

如何?这是解决这个问题的简单方法。 – Scimonster

+1

我认为这是一个有效的答案,或者至少不配一个-1:/ – fguillen

2

因为你将datatype设置为json,所以我猜你不需要自己解析JSON。请注意,解析响应在done方法的第一个参数提供的,看到从jQuery文档这个例子:

$.ajax({ 
    url: "http://fiddle.jshell.net/favicon.png", 
}) 
.done(function(data) { 
    console.log("Sample of data:", data.slice(0, 100)); 
}); 
+1

确实,OP不需要自己解析响应,但是由于它们得到原始'responseText'并解析它,所以这样做不会引起问题。 – Quentin

+0

是的,我认为是这样的:@ user2284140正试图解析已解析的JSON,所以试图解析一个哈希。 – fguillen

+0

所以,我可以直接使用json我收到的变量响应由ajax.responseText并使用它来索引值? – user2284140