Go里对JSON的操作提供了encoding/json
这个包两个方法
json.Marshal()
json.Unmarshal()
对象转JSON,使用json.Marshal()
方法
// 琼台博客 www.qttc.net
package main
import (
"encoding/json"
"fmt"
)
type People struct {
Age int `json:"age"`
Name string `json:"name"`
}
func main() {
p := People{18, "Nicholas"}
s, err := json.Marshal(p)
if err != nil {
panic(err)
} else {
fmt.Println(string(s)) // Output: {"age":18,"name":"Nicholas"}
}
}
输出
{"age":18,"name":"Nicholas"}
JSON字符串转对象,使用json.Unmarshal()
方法
// 琼台博客 www.qttc.net
package main
import (
"encoding/json"
"fmt"
)
type People struct {
Age int `json:"age"`
Name string `json:"name"`
}
func main() {
s := "{\"age\":18,\"name\":\"Nicholas\"}"
var p People
err := json.Unmarshal([]byte(s), &p)
if err != nil {
panic(err)
} else {
fmt.Println(p) // Output: {18 Nicholas}
}
}
输出
{18 Nicholas}