2017-02-21 67 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是唯一一个解组,因为它是大写,因此被导出。