这是我第一次使用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
答案 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)
使用此...
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 & 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;
我更改了Json String数据,因为你的数据不起作用。我认为它没有很好的格式化