2017-02-21 91 views
-3

我嘗試創建JSON數組Golang創建JSON數組

type Data struct { 
Veggies Vegetables 
array array } type array map[string] []int 
func main(){ 
vegetables := Vegetables{} 
vegetables["Carrots"] = 21 
n:= array{} 
n ["array"]= [] int {1, 1 ,1} 
d := Data{ vegetables,n} 

json.MarshalIndent(d, "", " ")} 

請解釋爲什麼看不到陣列?

+1

輸出:{ 「素食者」:{ 「胡蘿蔔」:21 } } –

回答

0

上面的代碼不能編譯,但也有一些類型的問題。我會避免像Array這樣的名稱可能會混淆語言關鍵字,並放棄自定義類型。也許這樣更簡單?

https://play.golang.org/p/OBw4gI2Zkm

type Data struct { 
    Veggies map[string]int 
    Ints []int 
} 
... 
j, err := json.MarshalIndent(d, "", " ") 

該文檔的JSON包好,你需要閱讀它們。

https://golang.org/pkg/encoding/json/#Marshal

對於去,這本書也大不如介紹了語言:

http://www.gopl.io/

0

要使用Unmarshaller,需要導出結構數據成員。也就是說,他們需要大寫,否則unmarshaller無法訪問。在您的Data結構中大寫ArrayVeggies是唯一一個解組,因爲它是大寫,因此被導出。