/ / Повернення масиву структури як Json Response за допомогою GO - json, struct, go

Повернення масиву структури як Json Response за допомогою GO - json, struct, go

Я будую REST api в GO, і я в змозіотримати відповідь JSON з сервера. Я з нетерпінням чекаю збереження відповіді JSON у вигляді контейнера (масиву) та повернення цієї структури з функції. У мене в структурах даних визначено щось подібне - {

type Payload struct {
Stuff []Data `json:"data"`  // holds the JSON response returned
}

type Container struct {
container []Payload
}

type ListContainersResponse struct {
Data []Container    // want this thing to be returned from the function
}


func (client *Client) ListContainers() (ListContainersResponse, error) {
// fetches the JSON response
var p Payload

// XYZ is something of the type ListContainersResponse which needs to be returned
return  XYZ
}

}

ітерація над р дає мені свою структуру JSON і яхочемо додати його до контейнера Data [], який може вмістити цю повернуту відповідь JSON та повернутий назад із функції. Я спробував пограти з цим, але отримав деякі винятки. Може хтось мені допоможе в цьому?

Дякую, я працював над своїм кодом, роблячи щось подібне {

var result ListContainersResponse
var temp Container
temp.container = append(temp.container, p)
result.Data = append(result.Data, temp)

}

Відповіді:

0 для відповіді № 1

Якщо припустити, що ви вже розшифрували JSON у екземпляр Payload p.

func (client *Client) ListContainers() (ListContainersResponse, error) {
// fetches the JSON response
var p Payload

XYZ := ListContainersResponse {
Data: []Container {
container: []Payload {
{p},
},
},
}

// XYZ is something of the type ListContainersResponse which needs to be returned
return XYZ
}

Крім того, якщо хтось інший зацікавлений, ось як я ставлю JSON в структуру:

var p Payload
decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&p)

Де r є типу http.Request. Я думаю, що рядок json виглядає приблизно так:

{
"data": [...]
}