1 回答
TA贡献2051条经验 获得超10个赞
我在这里做一些假设:
您正在
news
其他地方使用该结构,并且字段必须保持原样您尝试编码的数据是从切片中读取的
[]news
您可以通过 3 个步骤完成此操作:
使该
Id
字段可选使用omitempty
使用定义和分配类型的
map[string]news
映射make()
迭代您的数据以填充
map
更新结构
type news struct {
Id string `json:"id,omitempty"`
Title string `json:"title"`
Author string `json:"author"`
Date string `json:"date"`
Escraped string `json:"escraped"`
Page string `json:"page"`
Body string `json:"body"`
Url string `json:"url"`
}
创建地图
result := make(map[string]news)
填充地图
// Transform a slice of news (called data) to a map (called result)
for _, entry := range data {
result[entry.Id] = news{
Title: entry.Title,
Author: entry.Author,
Date: entry.Date,
Escraped: entry.Escraped,
Page: entry.Page,
Body: entry.Body,
Url: entry.Url,
}
}
// Encode the map
encoded, _ := json.Marshal(result)
输出:
{"someId":{"title":"something","author":"something","date":"something","escraped":"something","page":"https://something","body":"something","url":"https://something"}}
请参阅此处的示例:https: //play.golang.org/p/8z6M8HqCVgv
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报