Golang json Unmarshal "unerwartetes Ende der JSON Eingabe"

8

Ich arbeite an etwas Code, um die JSON-Daten von einer HTTP-Antwort zu analysieren. Der Code, den ich habe, sieht ungefähr so ​​aus:

%Vor%

Der JSON in der Variable respBytes sieht folgendermaßen aus:

%Vor%

err ist jedoch nicht null. Wenn ich es ausdrucke sagt es unexpected end of JSON input . Was verursacht das? Der JSON scheint gültig zu sein. Hat dieser Fehler etwas mit meiner benutzerdefinierten Struktur zu tun?

Vielen Dank im Voraus!

    
Stratus3D 16.01.2015, 23:17
quelle

2 Antworten

3

unexpected end of JSON input ist das Ergebnis von einem Syntaxfehler in der JSON-Eingabe (wahrscheinlich fehlt " , } oder ] ). Der Fehler hängt nicht vom Typ des Werts ab, für den Sie dekodieren.

Ich habe den Code mit der Beispiel-JSON-Eingabe auf dem Spielplatz ausgeführt. Es läuft ohne Fehler.

Der Code dekodiert nichts, weil das Feld result nicht exportiert wird. Wenn Sie das Ergebnisfeld exportieren:

%Vor%

dann wird die Eingabe wie in diesem Spielplatzbeispiel dekodiert.

Ich vermute, dass Sie nicht den gesamten Antworttext in Ihrer Bewerbung lesen. Ich empfehle die Dekodierung der JSON-Eingabe mit:

%Vor%

Der Decoder liest direkt aus dem Antworttext.

    
Cerise Limón 17.01.2015, 01:14
quelle
1

Sie können diesen Fehler auch erhalten, wenn Sie json.RawMessage in einem nicht-exportierten Feld verwenden. Der folgende Code erzeugt beispielsweise den gleichen Fehler:

%Vor%

Wenn Sie das Feld "MyJson.bar" exportieren (z. B. - "MyJson.Bar", funktioniert der Code.)

    
Robert 01.04.2016 15:04
quelle

Tags und Links