在 go 中处理嵌套结构的 json 数据:使用 encoding/json 包对 json 数据进行编解码。使用 json.unmarshal() 函数解码 json 数据到嵌套结构。使用 json.marshal() 函数将嵌套结构编码为 json。通过访问结构中的字段来访问嵌套数据。从 api 中获取并解码嵌套结构的 json 数据。
如何在 Go 中处理有嵌套结构的 JSON 数据
在 Go 中,你可以使用 encoding/json 包轻松处理嵌套结构的 JSON 数据。这个包提供了对 JSON 数据进行编解码的强大功能。
编解码嵌套结构
要对嵌套结构进行编码或解码,你可以使用 json.Unmarshal() 和 json.Marshal() 函数。
// 嵌套结构的 JSON 数据
jsonStr := `{"name": "John Doe", "age": 30, "address": {"street": "123 Main St", "city": "New York"}}`
// 解码 JSON 数据到嵌套结构
type Person struct {
Name string
Age int
Address Address
}
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
// 处理错误
}
// 访问嵌套字段
fmt.Println(person.Name) // John Doe
fmt.Println(person.Address.Street) // 123 Main St
// 编码嵌套结构为 JSON
jsonBytes, err := json.Marshal(person)
if err != nil {
// 处理错误
}
// 输出 JSON 数据
fmt.Println(string(jsonBytes))
实战案例:从 API 获取数据
现在,让我们看看一个实战案例,我们将从 API 获取包含嵌套结构的 JSON 数据并将其解码到 Go 结构。
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type Post struct {
ID int