如何在 Golang 中将 JSON 解码为对象?

假设我们有一个像这样的 JSON。

{

   "name":"Mukul Latiyan",

   "age":10,

   "sports":[

      "football",

      "tennis",

      "cricket"

   ]

}

现在,我们想将这个 JSON 转换为结构体字段,我们可以稍后访问这些字段,也可以对其进行迭代。

为此,我们需要首先创建一个满足上述 JSON 字段的结构。

下面显示的结构将适用于上述 JSON。

type Person struct {

   Name string `json:"name"`

   Age int `json:"age"`

   Sports []string `json:"sports"`

}

现在,下一步是在 Go 中将上述 JSON 对象转换为一个字节片,借助类型转换,然后,我们将该字节片Unmarshal()与Person对象作为第二个参数一起传递给函数。

示例

考虑下面显示的代码。

package main

import (

   "encoding/json"

   "fmt"

)

type Person struct {

   Name string `json:"name"`

   Age int `json:"age"`

   Sports []string `json:"sports"`

}

func main() {

   text := []byte(

      `{

         "name":"Mukul Latiyan",

         "age":10,

         "sports":["football","tennis","cricket"]

      }`)

   var p Person

   err := json.Unmarshal(text, &p)

   if err != nil {

      panic(err)

   }

   fmt.Println(p.Name)

   fmt.Println(p.Age)

   for _, value := rangep.Sports{

      fmt.Println(value)

   }

}

在上面的代码中,在调用Unmarshal函数后,我们只是简单地打印struct不同字段的值。

如果我们在上面的代码上运行go run main.go命令,那么我们将在终端中得到以下输出。

输出结果

Mukul Latiyan

10

football

tennis

cricket

以上是 如何在 Golang 中将 JSON 解码为对象? 的全部内容, 来源链接: utcz.com/z/350399.html

回到顶部