添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

golang json 字符串转对象

在 Golang 中,将 JSON 字符串转换为对象可以使用内置的 "encoding/json" 包。具体步骤如下:

  • 定义一个结构体,用于表示 JSON 数据中的对象类型及其属性。结构体中的属性名需要与 JSON 数据中的键名一致,属性类型需要与 JSON 数据中对应的值类型一致。
  • 例如,假设有如下 JSON 字符串:

    "name" : "Tom" , "age" : 20 , "gender" : "male"

    则可以定义如下的结构体:

    type Person struct {
        Name   string `json:"name"`
        Age    int    `json:"age"`
        Gender string `json:"gender"`
    
  • 使用 json.Unmarshal() 函数将 JSON 字符串解析为结构体对象。json.Unmarshal() 接收两个参数:第一个参数是要解析的 JSON 字符串,第二个参数是解析结果要存放的目标变量的地址。
  • 例如,假设有如下 JSON 字符串:

    jsonStr := `{
      "name": "Tom",
      "age": 20,
      "gender": "male"
    

    则可以使用以下代码将其转换为 Person 结构体对象:

    var p Person
    if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
        fmt.Println(err)
        return
    

    在上述代码中,使用 []byte() 函数将 JSON 字符串转换为字节数组,然后将字节数组和 p 变量的地址传递给 json.Unmarshal() 函数。

  • 可以通过访问结构体对象的属性来获取 JSON 数据中的值。
  • 例如,可以使用以下代码获取 Person 结构体对象的 Name 属性:

    fmt.Println(p.Name)
    

    完整的示例代码如下:

    package main
    import (
        "encoding/json"
        "fmt"
    type Person struct {
        Name   string `json:"name"`
        Age    int    `json:"age"`
        Gender string `json:"gender"`
    func main() {
        jsonStr := `{
          "name": "Tom",
          "age": 20,
          "gender": "male"
        var p Person
        if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
            fmt.Println(err)
            return
        fmt.Println(p.Name)
    

    以上就是使用 Golang 将 JSON 字符串转换为对象的详细步骤。

  •