如何在 Go 中解析 JSON 数组
在 Go 中,encoding/json 包提供了将 JSON 数据解组为 Go 结构的支持。要解析 JSON 数组,可以使用以下步骤:
定义一个 Go 结构体: 定义一个表示 JSON 中各个元素形状的结构体大批。例如,如果 JSON 数组包含具有名称和价格字段的对象,则可以定义以下结构体:
type PublicKey struct { Name string Price string }
注意: 确保结构体中的字段名称与字段匹配JSON 数组中的名称。
创建结构体的切片:创建定义的结构类型的切片来保存已解析的数据:
var keys []PublicKey
解组 JSON: 使用 json.Unmarshal() 函数解组JSON 数组放入结构体切片中:
err := json.Unmarshal([]byte(jsonStr), &keys)
其中 jsonStr 是 JSON要解析的数据。
处理任何错误:检查解组过程中遇到的任何错误。如果发生错误,则会存储在 err 变量中:
if err != nil { // Handle the error }
访问解析后的数据: 一旦 JSON 数组解析完毕,就可以访问切片的各个元素结构体:
for _, key := range keys { fmt.Println(key.Name, key.Price) }
示例:
以下代码演示了如何使用上述步骤解析 JSON 数组:
package main import ( "encoding/json" "fmt" ) type PublicKey struct { Name string Price string } func main() { jsonStr := `[{"name":"Galaxy Nexus", "price":"3460.00"},{"name":"Galaxy Nexus", "price":"3460.00"}]` var keys []PublicKey err := json.Unmarshal([]byte(jsonStr), &keys) if err == nil { for _, key := range keys { fmt.Println(key.Name, key.Price) } } else { fmt.Println(err) } }
输出:
Galaxy Nexus 3460.00 Galaxy Nexus 3460.00
以上是如何在 Go 中解析 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!