2015-09-07 94 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