2016-07-16 5 views
0

Nun, ich weiß, dass diese Frage oft gestellt wird. Aber dieser ist anders.SyntaxError: Unerwartetes Token in JSON an Position x

Ich verwende getJSON, um einige Daten aus der Datenbank zu bekommen. Das Ergebnis, das zurückgegeben wird, ist eine gültige JSON (von mehreren JSON Validatoren überprüft), aber ich erhalte den folgenden Fehler:

SyntaxError: Unexpected token in JSON at position 1618

, die einen besonderen Charakter in sich hat, die nicht in der obigen Fehler nicht angezeigt.

Dies ist der Screenshot der Fehlermeldung:

enter image description here

die Zeichen an der Position 1618 ein Raum (Code 32), und es ist in einem Textwert. Hier

ist die JSON Text:

{"headers":["default","fa-ir","en-us"],"results":[{"id":14,"default":"آذربایجان شرقی","fa-ir":"آذربایجان شرقی","en-us":""},{"id":15,"default":"آذربایجان غربی","fa-ir":"آذربایجان غربی","en-us":""},{"id":16,"default":"اردبیل","fa-ir":"اردبیل","en-us":""},{"id":17,"default":"اصفهان","fa-ir":"اصفهان","en-us":""},{"id":18,"default":"البرز","fa-ir":"البرز","en-us":""},{"id":19,"default":"ایلام","fa-ir":"ایلام","en-us":""},{"id":20,"default":"بوشهر","fa-ir":"بوشهر","en-us":""},{"id":21,"default":"تهران","fa-ir":"تهران","en-us":""},{"id":22,"default":"چهارمحال و بختیاری","fa-ir":"چهارمحال و بختیاری","en-us":""},{"id":23,"default":"خراسان جنوبی","fa-ir":"خراسان جنوبی","en-us":""},{"id":24,"default":"خراسان رضوی","fa-ir":"خراسان رضوی","en-us":""},{"id":25,"default":"خراسان شمالی","fa-ir":"خراسان شمالی","en-us":""},{"id":26,"default":"خوزستان","fa-ir":"خوزستان","en-us":""},{"id":27,"default":"زنجان","fa-ir":"زنجان","en-us":""},{"id":28,"default":"سمنان","fa-ir":"سمنان","en-us":""},{"id":29,"default":"سیستان و بلوچستان","fa-ir":"سیستان و بلوچستان","en-us":""},{"id":30,"default":"فارس","fa-ir":"فارس","en-us":""},{"id":31,"default":"قزوین","fa-ir":"قزوین","en-us":""},{"id":32,"default":"قم","fa-ir":"قم","en-us":""},{"id":33,"default":"کردستان","fa-ir":"کردستان","en-us":""},{"id":34,"default":"کرمان","fa-ir":"کرمان","en-us":""},{"id":35,"default":"کرمانشاه","fa-ir":"کرمانشاه","en-us":""},{"id":36,"default":"کهگیلویه و بویراحمد","fa-ir":"کهگیلویه و بویراحمد","en-us":""},{"id":37,"default":"گلستان","fa-ir":"گلستان","en-us":""},{"id":38,"default":"گیلان","fa-ir":"گیلان","en-us":""},{"id":39,"default":"لرستان ","fa-ir":"لرستان ","en-us":""},{"id":40,"default":"مازندران","fa-ir":"مرکزی","en-us":""},{"id":41,"default":"هرمزگان","fa-ir":"هرمزگان","en-us":""},{"id":42,"default":"همدان","fa-ir":"همدان","en-us":""},{"id":43,"default":"یزد","fa-ir":"یزد","en-us":""}]} 
+0

Wenn möglich, geben Sie den JSON-Text ein. –

+0

Überprüfen Sie, ob Sie ein unbekanntes Zeichen in den JSON kopieren eingefügt, versuchen Sie, kopieren Sie die JSON in einem Editor Editor und dann fügen Sie es wieder und versuchen –

+0

@SubirKumarSao Ich habe den JSON-Code –

Antwort

3

Ihre JSON (abgerufen aus http://sabad123.com/ajax/update-input.aspx?t=province&id=8) eine Lasche ("\t") bei der Charakter 1618 direkt hier:

...{"id":39,"default":"لرستان \t",... 

Dies scheitert in parsen Pythons JSON-Parser sowie $.getJSON.

Ich würde als nächstes einen Blick darauf werfen, wie Sie dieses JSON produzieren. Da es nicht gültig zu sein scheint, könnte es einen Fehler in dem, was es produziert, haben.

Zumindest können Sie dieses spezifische Datenproblem beheben, indem Sie die Registerkarte loswerden.

EDIT

Beachten Sie, dass zwar pro JSON-Spezifikation, eine Registerkarte kein zulässiges Zeichen in einem JSON-String ist. Siehe https://stackoverflow.com/a/19799355/94559. Ich denke, \u0009 ist der richtige Weg, um das Tab-Zeichen zu entkommen.

+0

Sie sind ein Genie. Danke vielmals. –

Verwandte Themen