2016-09-21 34 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来自: { “从:“:{ .....