1 回答
TA貢獻1890條經驗 獲得超9個贊
json.Marshal()將給定的值編組為 JSON(并將其作為 a 返回[]byte),因此您擁有的內容s是u保存輸入 JSON 文本的 JSON 文本。附加(連接)這兩個文本甚至不會產生有效的 JSON,顯然不是你想要的。
您的輸入是 JSON 文本,包含一個 JSON 數組。因此,您應該做的是將您的輸入解組為 Go 切片(類型為[]interface{}),您可以附加這些切片,然后將結果編組回 JSON。
像這樣的東西:
superset := `[{"id": 1231, "name": "testing1"},{"id": 1235, "name": "testing2"}]`
subset := `[{"id": 1237, "name": "testing3"}]`
var s1, s2 []interface{}
if err := json.Unmarshal([]byte(superset), &s1); err != nil {
panic(err)
}
if err := json.Unmarshal([]byte(subset), &s2); err != nil {
panic(err)
}
s2 = append(s2, s1...)
result, err := json.Marshal(s2)
if err != nil {
panic(err)
}
fmt.Println(string(result))
這個輸出(在Go Playground上試試):
[{"id":1237,"name":"testing3"},{"id":1231,"name":"testing1"},{"id":1235,"name":"testing2"}]
- 1 回答
- 0 關注
- 135 瀏覽
添加回答
舉報
