使用 Unmarshal 和定义的结构
问题:
如何解析复杂的 JSON 数组Go 中包含结构化格式的对象?
示例 JSON:
[{"id":694476444991229955,"id_str":"694476444991229955"}]
解决方案:
定义一个 Go 结构体来对 JSON 进行建模data。
type Tweet struct { ID int64 `json:"id"` IDStr string `json:"id_str"` }
创建 tweet 结构的切片来保存解析的结果。
tweets := make([]Tweet, 0)
将 JSON 数组解组为推文
err := json.Unmarshal([]byte(jsonString), &tweets) if err != nil { fmt.Println(err) }
迭代推文切片以访问解析的数据。
for _, tweet := range tweets { fmt.Println(tweet.ID, tweet.IDStr) }
解组到 Map[字符串]接口{} slice
注意:此方法需要索引和类型断言来访问值。
创建一个映射切片来保存解析结果。
tweets := make([]map[string]interface{}, 0)
解组JSON 数组放入地图切片中。
err := json.Unmarshal([]byte(jsonString), &tweets) if err != nil { fmt.Println(err) }
迭代地图切片以访问解析的数据。
for _, tweet := range tweets { id, ok := tweet["id"].(int64) if ok { fmt.Println("ID:", id) } }
以上是如何在 Go 中将 JSON 数组解析为结构化数据?的详细内容。更多信息请关注PHP中文网其他相关文章!