Golang:json Unmarshal无法解压缩简单示例

时间:2016-09-21 15:17:08

标签: go

我无法理解这个问题。我有一个简单的结构,以及另一个使用它两次的结构:

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包是否有“详细模式”,它会告诉我unmarshaller出了什么问题?这不是我第一次遇到这个包的神秘问题。

2 个答案:

答案 0 :(得分:2)

请注意:

"来自:" 应该是"来自"在ranges.json

答案 1 :(得分:-1)

json格式错误, 从下面看结肠: { “来自:”:{    .....