2016-09-21 2 views
-2

Ich kann mich nicht um dieses Problem kümmern. Ich habe eine einfache Struktur und eine andere Struktur, die es zweimal verwendet:Golang: json Unmarshal nicht einfach zu entpacken Beispiel

type Range struct { 
    Position int `json:"position"` 
    Length int `json:"length"` 
} 

type TwoRanges struct { 
    From Range `json:"from"` 
    To Range `json:"to"` 
} 

und die folgende json Probe in der Datei „ranges.json“:

{ 
"from:": { 
    "position": 348, 
    "length": 15 
}, 
"to": { 
    "position": 737, 
    "length" : 10 
} 
} 

Ich versuche unmarshalling die Probe in dem folgenden Code :

func main() { 
    buffer, err := ioutil.ReadFile("ranges.json") 
    if err != nil { 
     log.Fatal(err) 
    } 
    var sample TwoRanges 
    if err = json.Unmarshal(buffer, &sample); err != nil { 
     log.Fatal(err) 
    } 

    fmt.Printf("%v\n", sample) 
} 

Der Ausgang ist

{{0 0} {737 10}} 

Irgendwie wird nur die Hälfte der Struktur entpackt.

  1. Ist es ein Fehler, oder mache ich etwas falsch?
  2. Gibt es einen "ausführlichen Modus" für das Kodierung/JSON-Paket, der mir sagen würde, was mit dem Unmarshaller schief gelaufen ist? Es ist nicht das erste Mal, dass ich mysteriöse Probleme mit diesem Paket hatte.
+3

die" von: "sollte" von "in Ihrem' ranges.json' sein –

+0

@simon_xia Wow! Danke für deine scharfen Augen! Dies löst mein Problem, zumindest für den Moment. Bitte, antworte auf deinen Kommentar. Weißt du irgendein Werkzeug, das mir helfen würde, Fehler wie diesen zu finden (wie der "wortreiche Modus", den ich mir oben vorgestellt habe)? – user44168

+0

Dies ist kein Syntaxfehler, Entschuldigung für mein begrenztes Wissen, um ein Tool da draußen zu finden, um dies zu vermeiden :(@ user44168 –

Antwort

2

beachten Sie, dass:

die "aus:" sollte "von" in Ihrem ranges.json

-1

Die json schlecht formatiert hat, schauen den Doppelpunkt afer aus: { „aus : ": { .....

Verwandte Themen