package main
import("encoding/json""fmt""log")funcmain(){// 假设这是你要解析的JSON字符串
jsonStr :=`{"name": "John", "age": 30, "city": "New York"}`// 声明一个map来存储解析后的数据 var result map[string]interface{}// 解析JSON字符串到map
err := json.Unmarshal([]byte(jsonStr),&result)if err !=nil{
log.Fatalf("error parsing JSON: %s", err)}// 现在你可以像访问map一样访问解析后的数据了
fmt.Println(result["name"])// 输出: John
fmt.Println(result["age"])// 输出: 30(注意:这将是float64类型,因为JSON中的数字默认为浮点数)
fmt.Println(result["city"])// 输出: New York }
解析JSON字符串到Go的结构体
package main
import("encoding/json""fmt""log")// 定义一个结构体来匹配JSON数据 type Person struct{
Name string`json:"name"`
Age int`json:"age"`
City string`json:"city"`}funcmain(){// 假设这是你要解析的JSON字符串
jsonStr :=`{"name": "John", "age": 30, "city": "New York"}`// 声明一个Person类型的变量来存储解析后的数据 var person Person
// 解析JSON字符串到结构体
err := json.Unmarshal([]byte(jsonStr),&person)if err !=nil{
log.Fatalf("error parsing JSON: %s", err)}// 现在你可以直接访问结构体的字段了
fmt.Println(person.Name)// 输出: John
fmt.Println(person.Age)// 输出: 30
fmt.Println(person.City)// 输出: New York }