簡體   English   中英

無法在JQuery中正確解析JSON數據

[英]Unable to parse JSON data properly in JQuery

這是我第一次使用jQuery轉換JSON數據,但是當我嘗試轉換JSON字符串時出現以下錯誤。 難道我做錯了什么? 我在搜索一些有關在jQuery中轉換JSON字符串的簡單站點,但是大多數教程似乎有點難以理解。 如果可能的話,我想在這里介紹一些有關使用jQuery從URL轉換jsons的技巧。

var obj = jQuery.parseJSON( '{"result":[{"id":"25","name":"loplo\n","score":"1198"},{"id":"58","name":"adjm","score":"1131"},{"id":"60","name":"dragon with ","score":"1083"},{"id":"57","name":"tDj","score":"799"},{"id":"59","name":"dragon with ","score":"452"},{"id":"55","name":"Donny","score":"450"},{"id":"56","name":"ajo ","score":"401"},{"id":"61","name":"make ","score":"392"}]}' );

錯誤信息

Uncaught SyntaxError: Unexpected token 
 in JSON at position 35
    at JSON.parse (<anonymous>)
    at Function.m.parseJSON (jquery-1.11.1.min.js:4)
    at leaderboard.js:16

您收到該錯誤消息的原因是名稱為“ loplo \\ n”的第一個元素中的\\ n

這是因為像這樣的JSON對象中允許使用新行,因為它們需要刪除或轉義。

為了解決這個問題,你可以做

var obj = jQuery.parseJSON(mystring.replace(/\n/g,"\\n"));

您可以在此處了解更多信息: https : //bugs.chromium.org/p/v8/issues/detail?id=616

這是因為您將換行符作為loplo的值:

“ loplo \\ n”刪除\\ n ,它應該可以工作。

我不建議使用replace刪除所有\\ n,因為您可能想要這么做。 如果要保留\\ n,請在其前面添加一個轉義字符,如下所示:

“ loplo \\\\ n”,它應該可以工作。

用這個...

 var e = '{"result":[{"id":"1351","identite":"RES ADDS","etat":"1","email":"udohou@gmail.com","telephone":"8787878","adresse":"COTONOU","nom_pays":"Togo","indicatif":"228"},{"id":"1350","identite":"MY DREAM","etat":"2","email":"dohouulrich@gmail.com","telephone":"5248525","adresse":"COTONOU","nom_pays":"Togo","indicatif":"228"},{"id":"1349","identite":"UN ","etat":"1","email":"dohouulrich@gmail.com","telephone":"66353364","adresse":"","nom_pays":"Benin","indicatif":"229"},{"id":"1348","identite":"DOHOU ULRICH SEMASSA &amp; Fils","etat":"1","email":"dohouulrich@gmail.com","telephone":"66353364","adresse":"COTONOU","nom_pays":"Benin","indicatif":"229"},{"id":"1344","identite":"DC","etat":"2","email":"dohouulrich@gmail.com","telephone":"66353364","adresse":"","nom_pays":"Afghanistan","indicatif":"93"},{"id":"1343","identite":"AGAIN","etat":"2","email":"dohouulrich@gmail.com","telephone":"66353364","adresse":"","nom_pays":"Afghanistan","indicatif":"93"},{"id":"1342","identite":"SOCIAL LIMITED","etat":"3","email":"dohouulrich@gmail.com","telephone":"66353364","adresse":"","nom_pays":"Afghanistan","indicatif":"93"}]}'; var json = JSON.stringify(eval('(' + e + ')')); var arr = $.parseJSON(json); var resultData = arr['result'] ; console.log(resultData) ; 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

我更改了Json String數據,因為您的數據不起作用。 我認為格式不正確

暫無
暫無

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

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