2014-02-26 61 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