2016-09-21 9 views
-2

私はこの問題を回避できません。私は、次のコードサンプルを非整列化してみてくださいGolang:json Unmarshalが簡単な例を開けなかった

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

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

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

やファイルに次のJSONサンプル「ranges.json」:私は二回、それを使用する別の構造体を簡単な構造体を持っている、と:

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) 
} 

出力

{{0 0} {737 10}} 
であります

どういうわけか、構造体の半分だけが解凍されています。

  1. これはバグですか、何か間違っていますか?
  2. エンコーダー/ jsonパッケージの「詳細モード」がありますが、アンマーシャラーに何が問題になったのか教えてください。私がそのパッケージで不思議な問題を抱えたのは初めてではありません。
+3

あなたの' ranges.json'の "from:"は "from"でなければなりません –

+0

@simon_xia Wow!あなたの鋭い目をありがとう!これは少なくとも今のところ私の問題を解決します。あなたのコメントに答えてください。このような間違いを見つけるのに役立つツール(上記の "冗長モード"のような)を知っていますか? – user44168

+0

これは構文エラーではありません。私の限られた知識のおかげで、これを避けるためのツールが見つかりました:(@ user44168 –

答えて

2

なお:

"から:":から」 { があるべきJSONは、 からのaferコロンをフォーマットされた悪い見ているあなたのranges.json

-1

で "から" : ":{ .....