2015-09-07 102 views
-1

我想解组一个json对象来结构在Go中。我试图坚持this example,但我无法实现它的工作。结果保持空白。Unmarshal JSON对象在结构中去 - 结果为空

代码:

package main 

import (
    "encoding/json" 
    "fmt" 
) 

type MyObject struct { 
    id  string 
    pubKey string 
} 

func main() { 
    x := `{"id":"abc","pubKey":"QIDAQAB"}` 
    fmt.Println("Input: ", x) 

    var myObject MyObject 
    json.Unmarshal([]byte(x), &myObject) 

    fmt.Println("Output: ", myObject) 
} 

输出:

Input: {"id":"abc","pubKey":"QIDAQAB"} 
Output: { } 

Playground

我发现了一个lotofsimilar个问题,但我甚至无法看到工作示例和我的非工作代码之间的差异。我错过了什么?

回答

2

要将元帅或Unmarshal的结构字段必须要导出
检查出来:http://blog.golang.org/json-and-go

JSON的包只访问结构类型 (那些以大写字母开头)的导出的字段。因此,只有结构的导出字段 将出现在JSON输出中。

工作样本:Go playground

+0

非常感谢。我甚至不知道公/私是以大写/小写设置的。对不起,这个愚蠢的问题。这是我与Go的第一天。 – hurb

+1

不客气! Go是非常有趣的语言,但对于来自其他语言的人来说,它有一些不寻常的事情。所以保持**去**! – RoninDev