首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

easyjson将数组解组为go struct

要使用easyjson将JSON数组解组为Go结构体,请按照以下步骤操作:

  1. 首先,确保已经安装了easyjson。如果没有安装,可以通过运行以下命令安装:
代码语言:javascript
复制
go get -u github.com/mailru/easyjson/...
  1. 创建一个Go结构体,该结构体将表示JSON对象。例如,假设我们有以下JSON数组:
代码语言:javascript
复制
[
  {
    "id": 1,
    "name": "Alice",
    "age": 30
  },
  {
    "id": 2,
    "name": "Bob",
    "age": 25
  }
]

为了解组这个JSON数组,我们需要创建一个对应的Go结构体:

代码语言:javascript
复制
package main

type Person struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    Age  int    `json:"age"`
}

注意:结构体字段名的首字母必须大写,以便在其他包中访问。同时,使用反引号中的json标签来指定JSON属性名。

  1. 使用easyjson为结构体生成序列化和反序列化代码。在命令行中,切换到包含Person结构体的文件所在的目录,然后运行以下命令:
代码语言:javascript
复制
easyjson -all person.go

这将为Person结构体生成一个名为person_easyjson.go的文件,其中包含序列化和反序列化的代码。

  1. 现在,可以在Go程序中使用easyjson来解组JSON数组了。以下是一个完整的示例:
代码语言:javascript
复制
package main

import (
    "fmt"
    "log"
)

func main() {
    jsonData := `[{"id": 1, "name": "Alice", "age": 30}, {"id": 2, "name": "Bob", "age": 25}]`

    var persons []Person
    err := easyjson.Unmarshal([]byte(jsonData), &persons)
    if err != nil {
        log.Fatalf("Error unmarshaling JSON: %v", err)
    }

    fmt.Println(persons)
}

运行此程序,将输出以下结果:

代码语言:javascript
复制
[{1 Alice 30} {2 Bob 25}]

这表明JSON数组已成功解组为[]Person类型的Go结构体。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券