2016-10-11 2 views
0

Я пытаюсь создать массив JSON в Go со структурой, используя json.Marshall, однако я не могу получить желаемый результат, вот фрагмент структур, с которыми я работаю.Как дать Json-массив идентификатор в golang

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,...}]} 

Но я застрял на

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

Я не знаю, как получить дополнительную {"posts":..} по всему json array. Как добавить этот дополнительный идентификатор в массив 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

Вы удивительны –

Смежные вопросы