共计 635 个字符,预计需要花费 2 分钟才能阅读完成。
由于我一直是一名前端工程师,所以我会在前端的角度将 js 中的 json 操作和 go 中的操作做一个类比方便大家的理解。
将字符串转换为对象
js : JSON.parse(
`{“name”:”cfl”}`)
go : json.Unmarshal
jsonStr := `{
"name":"cfl",
"age":10,
"friend":[{"name":"sx",
"age":10
}]
}`
type User struct {
Name string
Age int64
Friend []User}
var cfl User
json.Unmarshal([]byte(jsonStr), &cfl)
fmt.Printf("%+v", cfl)
将对象转换为 json
js: JSON.stringify
go: json.Marshal
type User struct {
Name string
Age int64
Friend []User}
cfl := User{
Name: "cfl",
Age: 10,
Friend: []User{{Name: "sx", Age: 10},
},
}
jsonStr, _ := json.Marshal(cfl)
fmt.Printf("%v\n", string(jsonStr))
其他的常用方法
json.Valid(byte[]) // 校验 json 字符串是否合法
json.Indent // 按照一定的格式缩进
json.Compact // 压缩
json.MarshalIndent // 转换回带缩进的 json 字符串
参考资料 encoding/jso
正文完