Golang 如何将 JSON 解码为对象

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"`
}

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

例子

请看下面的代码。

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 := range p.Sports {
      fmt.Println(value)
   }
}

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

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

输出

Mukul Latiyan
10
football
tennis
cricket

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程