go之json基本使用
json简介
JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。
在go语言中编码解码注意事项
- Go语言中一些特殊的类型,比如Channel、complex、function是不能被解析成JSON的;
- JSON对象只支持string作为key,所以要编码一个map,那么必须是map[string]T这种类型(T是Go语言中任意的类型);
- 嵌套的数据是不能编码的,不然会让JSON编码进入死循环;
- 指针在编码的时候会输出指针指向的内容,而空指针会输出null。
标准库
Valid-校验json是否合法
例子:
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonStr1 := `{"product_name":"","product_id":"1","number":71,"price":"45.23","is_on_sale":"true"}`
fmt.Print("jsonStr1是否合法:", json.Valid([]byte(jsonStr1)), "\n")
jsonStr2 := `{"product_name","product_id":"1","number":71,"price":"45.23","is_on_sale":"true"}`
fmt.Print("jsonStr2是否合法:", json.Valid([]byte(jsonStr2)), "\n")
}
结果:
jsonStr1是否合法:true
jsonStr2是否合法:false
Marshal-json编码
例子:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"'`
Age