首页 > 后端开发 > Golang > 如何在 Go 中解析 JSON 数组?

如何在 Go 中解析 JSON 数组?

Linda Hamilton
发布: 2024-11-19 20:23:03
原创
514 人浏览过

How do I parse a JSON array in Go?

如何在 Go 中解析 JSON 数组

在 Go 中,encoding/json 包提供了将 JSON 数据解组为 Go 结构的支持。要解析 JSON 数组,可以使用以下步骤:

  1. 定义一个 Go 结构体: 定义一个表示 JSON 中各个元素形状的结构体大批。例如,如果 JSON 数组包含具有名称和价格字段的对象,则可以定义以下结构体:

    type PublicKey struct {
        Name string
        Price string
    }
    登录后复制

    注意: 确保结构体中的字段名称与字段匹配JSON 数组中的名称。

  2. 创建结构体的切片:创建定义的结构类型的切片来保存已解析的数据:

    var keys []PublicKey
    登录后复制
  3. 解组 JSON: 使用 json.Unmarshal() 函数解组JSON 数组放入结构体切片中:

    err := json.Unmarshal([]byte(jsonStr), &keys)
    登录后复制

    其中 jsonStr 是 JSON要解析的数据。

  4. 处理任何错误:检查解组过程中遇到的任何错误。如果发生错误,则会存储在 err 变量中:

    if err != nil {
        // Handle the error
    }
    登录后复制
  5. 访问解析后的数据: 一旦 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板