首頁 >後端開發 >Golang >如何在 Go 中使用動態頂層鍵解析 JSON?

如何在 Go 中使用動態頂層鍵解析 JSON?

Patricia Arquette
Patricia Arquette原創
2024-12-30 22:49:14906瀏覽

How to Parse JSON with Dynamic Top-Level Keys in Go?

Golang 中使用動態鍵進行 JSON 解析

在 Golang 中,使用動態頂級鍵解析 JSON 字串可能具有挑戰性。考慮以下 JSON:

{"bvu62fu6dq": {
    "name": "john",
    "age": 23,
    .....
    .....}

要提取「姓名」和「年齡」的值,需要自訂解決方案,因為頂層鍵不是固定欄位。

使用 Go 結構體和映射

最佳方法是定義一個結構體來表示內部對象,並定義一個映射來表示動態頂級鍵。此結構應包含所需屬性的字段,例如:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

映射又可以使用動態頂級鍵作為鍵,使用 Person 結構作為值。此結構允許高效存取所需值:

type Info map[string]Person

解碼和提取

要將 JSON 解碼為自訂結構,請使用 json.Unmarshal 函數。解碼後,可以透過映射鍵存取這些值:

var info Info
json.Unmarshal([]byte(j), &info)
fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)

這種方法提供了一種靈活且可擴展的方法來使用動態頂級鍵處理 JSON,確保輕鬆存取所需的屬性。

以上是如何在 Go 中使用動態頂層鍵解析 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn