1 回答
TA贡献1851条经验 获得超4个赞
如果您想要在问题中列出的响应,您可以使用通用数组[]interface{}并将其转换为 JSON。
inv1 := Invoice{
DocType: "invoice",
Total: 123.00,
}
inv2 := Invoice{
DocType: "invoice",
Total: 125.00,
}
tran := Transaction{
DocType: "transaction",
Total: 124.00,
Account: 1,
}
bytes, _ := json.Marshal([]interface{}{inv1, tran, inv2})
fmt.Println(string(bytes))
不管你是用来自gorm的值填充结构还是像我在这里做的那样初始化它们自己都没有关系。
阅读评论,您似乎有两个结构切片,您希望将两者合并为一个切片,然后编码为 JSON。
你可以这样做:
arr1 := []Invoice{inv1, inv2}
arr2 := []Transaction{tran}
combined := make([]interface{}, 0, len(arr1)+len(arr2))
for i := range arr1 {
combined = append(combined, arr1[i])
}
for i := range arr2 {
combined = append(combined, arr2[i])
}
bytes, _ := json.Marshal(combined)
fmt.Println(string(bytes))
在这里,我只是使用自己创建的切片,但这些切片很容易来自 gorm 的db.Find(&arr1).
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报