package main import ( "encoding/json" "fmt") type People struct { //由于结构体生成json文本成员变量必须大写,可以使用struct_tag来二次编码,此时可以使用小写 Name string `json:"name"` Subject []string Isok bool `json:", string"` //转换成字符串类型输出 Price float64 `json:"-"` //不打印}type People1 struct { //由于结构体生成json文本成员变量必须大写,可以使用struct_tag来二次编码,此时可以使用小写 Name string `json:"name"`} func main() { //json文本 JsonBuff := ` { "Name":"steven", "Subject":[ "C++", "Go", "Python" ], "Isok":true, "Price":66.66} ` var p1 People err := json.Unmarshal([]byte(JsonBuff), &p1) //这里p1一定是去地址 if err != nil { fmt.Println("err=", err) return } fmt.Println(p1) //{steven [C++ Go Python] true 0} fmt.Printf("%+v\n", p1) //{Name:steven Subject:[C++ Go Python] Isok:true Price:0} //如果只想打印json中某个字段,可以结构体就定义哪一个 var p2 People1 err2 := json.Unmarshal([]byte(JsonBuff), &p2) if err2 != nil { fmt.Println("err2=", err2) return } fmt.Println(p2) // fmt.Printf("%+v\n", p2) //{Name:steven} }
原文地址:https://www.cnblogs.com/zhaopp/p/11626081.html
时间: 2024-11-11 11:26:15