如何在 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 对象转换为字节切片,然后,我们将该字节切片连同**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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP