2016-10-11 6 views
0

json.Marshallを使用してGoでJSON配列を作成しようとしていますが、ここで目的の結果を得ることはできません。golangでJson配列に識別子を与える方法

posts := []models.Post{ 
    models.Post{Id: 1,MediaUrl:"...", Title: "...", Slug: "...", ShortDescription : "...", Content : "..."}, 
    models.Post{Id: 2,MediaUrl:"...", Title: "...", Slug: "...", ShortDescription : "...", Content : "..."}, 
} 

そして私は

{"posts":[{"Id": 1,...},{"Id": 2,...}]} 

のように見える構造体にマーシャルそれにしようとしています。しかし、私は私の周りの追加{"posts":..}を取得する方法を知らない

[{"Id":1,...},{"Id": 2,...}] 

で立ち往生していますjsonアレイ。 この追加識別子をjson配列に追加するにはどうすればよいですか?

答えて

3

ラップ おかげで「投稿」フィールドでJSONオブジェクトを追加するための構造体とのスライス:

data := struct { 
    Posts []models.Post `json:"posts"` 
}{ 
    Posts: posts 
} 
p, err := json.Marshal(&data) 

代替はマップとスライスをラップすることです:

p, err := json.Marshal(map[string]interface{}{"posts": posts}) 
+0

あなたは素晴らしいです –

関連する問題