阅读量:0
Go解析JSON字符串到map或结构体
解析JSON字符串到Go的map
package main import ( "encoding/json" "fmt" "log" ) func main() { // 假设这是你要解析的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"` } func main() { // 假设这是你要解析的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 }