工作中遇到的问题,如何将两个json格局的数据合并成同一个,浅记一下,原理就是
- 先将两个JSON格局的字符串别离序列化成[]byte
- 而后返序列化到map[string]interface{},实现起映射关系
- 最初序列化该map,将序列化的值转换成string类型
package mainimport ( "encoding/json" "fmt")type S struct { A uint32 `json:"a"` B string `json:"b"` C uint32 `json:"c"`}type S1 struct { B string `json:"b"` C uint32 `json:"c"` D uint32 `json:"d"`}func main() { //json格局的数据1 s := S{ A: 12, C: 2, } //json格局的数据2 s1 := S1{ B: "123", C: 99999, D: 10, } //接下来的指标:合并两个JSON字符串 js, _ := json.Marshal(s) js1, _ := json.Marshal(s1) var m map[string]interface{} json.Unmarshal(js, &m) json.Unmarshal(js1, &m) fmt.Println(m) res, _ := json.Marshal(m) fmt.Println(string(res)) // {"a":12,"b":"123","c":99999,"d":10}}