工作中遇到的问题,如何将两个json格式的数据合并成同一个,浅记一下,原理就是
- 先将两个JSON格式的字符串分别序列化成[]byte
- 然后返序列化到map[string]interface{},实现起映射关系
- 最后序列化该map,将序列化的值转换成string类型
package main
import (
"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}
}