string和[]byte之间的下相互转换
import (
"encoding/json"
"fmt"
"unsafe"
)
func string2bytes(s string) []byte {
return *(*[]byte)(unsafe.Pointer(&s))
}
func bytes2string(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
type Man struct {
Age int
Name string
Job *Job
}
type Job struct {
Name string
}
func main() {
m := Man{
Age: 12,
Name: "xiaoqiang",
Job: &Job{
Name: "engineer",
},
}
sl, _ := json.Marshal(m)
s := bytes2string(sl)
fmt.Println(s)
var n Man
_ = json.Unmarshal(string2bytes(s), &n)
fmt.Println(n, n.Job)
}
https://new.qq.com/omn/20220317/20220317A09CMS00.html