2016-09-21 66 views
-2

我無法解決這個問題。我有一個簡單的結構,並使用它兩次另一個結構:Golang:json Unmarshal無法解壓簡單示例

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

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

,並在文件「ranges.json」下面的JSON示例:

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

我嘗試解組在下面的代碼示例:

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

」from:「應該從你的'ranges.json'中的」from「 –

+0

@simon_xia哇!謝謝你敏銳的眼睛!這至少在現在解決了我的問題。請回答你的評論。你知道有什麼工具可以幫助我找到像這樣的錯誤嗎(比如我上面想到的「詳細模式」)? – user44168

+0

這不是語法錯誤,對不起,我有限的知識,找到一個工具,以避免這種情況:(@ user44168 –

回答

2

需要注意的是:

「從:」應該是 「從」 在您的ranges.json

-1

的JSON有壞格式化, 看結腸AFER來自: { 「從:「:{ .....