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 關注
- 119 瀏覽
添加回答
舉報