无法在JQuery中正确解析JSON数据

时间:2017-03-28 15:34:35

标签: javascript jquery json

这是我第一次使用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

3 个答案:

答案 0 :(得分:4)

您收到该错误消息的原因是第一个元素中的\ n,其名称为:&#34; loplo \ n&#34;

这是因为JSON对象中允许使用新行,因为它们需要被删除或转义。

要解决这个问题,你可以做到

O(n)

您可以在此处详细了解:https://bugs.chromium.org/p/v8/issues/detail?id=616

答案 1 :(得分:0)

这是因为您将新行字符作为loplo:

的值
  

&#34; loplo \ n&#34;   删除 \ n ,它应该可以。

我不建议删除所有\ n,因为您可能需要替换。如果你想保留\ n,在它之前添加一个转义字符,如下所示:

&#34; loplo \\ N'#34;它应该工作。

答案 2 :(得分:0)

使用此...

&#13;
&#13;
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) ;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

我更改了Json String数据,因为你的数据不起作用。我认为它没有很好的格式化