簡體   English   中英

使用AngularJS獲取JSON時獲取“錯誤:JSON.parse:意外字符”

[英]Getting “Error: JSON.parse: unexpected character” while getting JSON with AngularJS

我花了最后幾天試圖解決這個問題。 每次我嘗試使用Angular的$ http.get獲取JSON對象時,都會收到“錯誤:JSON.parse:意外字符”。

我的JSON是使用PHP的json_encode創建的。 PHP代碼如下:

header('Content-Type:application/json');
echo json_encode($to_encode);

它創建的JSON如下所示:

{"id":"1","para":{"para_id":"1","story_id":"1","para_content":""\u017bagiel na horyzoncie!" - s\u0142ycha\u0107 krzyk z bocianiego gniazda. Fregata Jego Kr\u00f3lewskiej Mo\u015bci "Acanta" \u017cwawo sunie przez b\u0142\u0119kit oceanu. Ty, jej dow\u00f3dca, stoisz na rufie. Bosman i sternik patrz\u0105 si\u0119 na ciebie, oczekuj\u0105c rozkaz\u00f3w."},"tunnels":[{"tunnel_id":"1","start_para_id":"1","end_para_id":"2","tunnel_content":"Spokojnie, zbli\u017cmy si\u0119 i sprawd\u017amy, kto to."},{"tunnel_id":"2","start_para_id":"1","end_para_id":"3","tunnel_content":"Bi\u0107 na alarm! Za\u0142oga do dzia\u0142!"}]}

(如果相關的話,它是用UTF8編碼的波蘭語;文本只是一個占位符)

得到它的JS看起來像這樣:

$scope.current_para = $http.get("/gamebook/run");
$scope.current_para.then(function(os){result = os.data; console.log(result);}

即使我的Firebug告訴我GET方法是成功的,甚至向我顯示了收到的JSON,我也沒有收到console.log中純凈的JSON的錯誤。

我終於找到了解決這些問題的方法-我仍然不知道發生什么或為什么發生,但是這是可以做的。

在服務器端,您必須將JSON數據包裝在單引號中(使其成為字符串),然后在JS中使用eval()將其轉換回JSON。

我知道它並不優雅,但這是我找到的唯一解決方案。 希望對別人有幫助。

感謝大家的投入!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM