Создать JSON, где ключ - это инкрементное значение
Как в структуре Mark ключ сделать инкрементым значением?
type Marks struct {
Marks []*Mark `json:"marks"`
}
//Mark структура Словарь марок
type Mark struct {
Mark string `json:"mark"`
SoldPart string `json:"soldPart,omitempty"`
}
Нужен такой JSON:
{
"marks":{
"1":{
"mark":"MDEwMTIzNDU2Nzg5MTIzNTIxMDAwMDAwMDAwMDAwNh0yNDAxMjM0HTEwMDEyMzQ1Njc4OUFC"
},
"2":{
"mark":"MDEwMTIzNDU2Nzg5MTIzNTIxMDAwMDAwMDAwMDAwNx0yNDAxMjM0HTEwMDEyMzQ1Njc4OUFC"
},
"3":{
"mark":"MDEwMTIzNDU2Nzg5MTIzNTIxMDAwMDAwMDAwMDAwOB0yNDAxMjM0HTEwMDEyMzQ1Njc4OUFC"
}
}
}
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Как-то так:
type Mark struct {
Mark string `json:"mark"`
SoldPart string `json:"soldPart,omitempty"`
}
type Marks []*Mark
func (m Marks) MarshalJSON() (b []byte, err error) {
if len(m) == 0 {
return []byte(`[]`), nil
}
var o = make(map[int]*Mark, len(m))
for i := range m {
o[i+1] = m[i]
}
return json.Marshal(o)
}
type MarksResponse struct {
Marks Marks `json:"marks"`
}
Playground: https://play.golang.org/p/TRgaUveMhlR.