SyntaxError: Unerwartetes Token o in JSON an Position 1

9

Ich analysiere einige Daten mit einer Typklasse in meinem Controller. Ich bekomme Daten wie folgt:

%Vor%

Ich habe versucht, die Daten so zu speichern

%Vor%

Wie kann ich die Benutzerliste zu einer neuen Variable extrahieren?

    
Soniya Mohan 14.07.2016, 17:21
quelle

6 Antworten

19

Der von Ihnen gepostete JSON sieht gut aus, aber in Ihrem Code ist es höchstwahrscheinlich kein JSON-String mehr, sondern bereits ein JavaScript-Objekt. Dies bedeutet, dass kein Parsing mehr nötig ist.

Sie können das selbst testen, z. in der Chrome-Konsole:

%Vor%

JSON.parse() konvertiert die Eingabe in eine Zeichenfolge. Die Methode toString() von JavaScript-Objekten gibt standardmäßig [object Object] zurück, was zu dem beobachteten Verhalten führt.

Versuchen Sie stattdessen Folgendes:

%Vor%     
Timo 14.07.2016, 17:37
quelle
4

Verwenden Sie niemals JSON.parse , ohne es in try-catch block:

einzufügen %Vor%     
Kousha 14.07.2016 17:42
quelle
2

Verwenden Sie direkt über JSON.parse :

%Vor%     
Sukhchain 06.04.2017 10:26
quelle
0

Nun, ich meinte, dass ich das Objekt wie folgt analysieren muss: var jsonObj = {"first name" : "fname"} . Aber ich nicht genau. Weil es schon json ist.

    
М.Б. 28.07.2017 16:43
quelle
0

Die ersten Parameter der Funktion JSON.parse sollten eine Zeichenkette sein, und Ihre Daten sind ein JavaScript-Objekt. Daher wird sie in eine Zeichenkette [object object] konvertiert. Sie sollten JSON.stringify verwenden, bevor Sie die Daten übergeben

%Vor%     
huruji 04.04.2018 19:30
quelle
-1

Unerwarteter O-Fehler wird ausgelöst, wenn JSON-Daten oder String analysiert werden.

Wenn es sich um eine Zeichenfolge handelt, ist sie bereits stringfiziert. Das Parsen endet mit einem unerwarteten 'O' Fehler.

Ich war ähnlich (obwohl in anderem Zusammenhang), löste den folgenden Fehler, indem ich JSON Producer entfernte.

%Vor%

Die Antwort enthält "OK" Zeichenfolgenrückgabe. Die mit @Products ({** MediaType.APPLICATION_JSON }) markierte Anmerkung versucht, die Zeichenfolge in das JSON-Format zu zerlegen, was zu Unerwartetem 'O' führt.

Das Entfernen von @Products ({ MediaType.APPLICATION_JSON }) funktioniert einwandfrei. Ausgabe: OK

Vorsicht: Wenn Sie auf der Clientseite eine AJAX-Anforderung stellen und JSON.parse ("OK") verwenden, wird auch das unerwartete Token "O"

ausgegeben

O ist der erste Buchstabe der Zeichenfolge

JSON.parse (Objekt) vergleicht mit jQuery.parseJSON (Objekt);

JSON.parse ('{"name": "Yergalem", "Stadt": "Dover"}); --- Funktioniert gut

    
Yergalem 03.04.2017 18:40
quelle

Tags und Links