Go解析JSON字符串到map或结构体

avatar
作者
筋斗云
阅读量: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   } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!