突然想起go语言怎么进行json转换
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Sex string `json:"-"`
Age int
}
func main() {
p := Person{"tom", "man", 23}
ToJSON1(p)
ToJSON2(p)
ToObejct("{\"name\":\"hello\",\"Sex\":\"man\",\"Age\":32}")
}
func ToJSON1(p Person) {
buf, err := json.Marshal(p)
if err != nil {
fmt.Println("convert json failed: ", err)
return
}
fmt.Println(buf)
fmt.Println("json1=", string(buf))
}
func ToJSON2(p Person) {
buf, err := json.MarshalIndent(p, "", "")
if err != nil {
fmt.Println("convert json failed:", err)
return
}
fmt.Println("format json=", string(buf))
}
func ToObejct(str string) {
buf := []byte(str)
var p Person
err := json.Unmarshal(buf, &p)
if err != nil {
fmt.Println("convert Person failed:", err)
return
}
fmt.Printf("p.Name=%s p.Age=%d\n", p.Name, p.Age)
}