ホームページ >バックエンド開発 >Golang >Go で動的 JSON キーを解析して特定のフィールドを抽出する方法

Go で動的 JSON キーを解析して特定のフィールドを抽出する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 04:54:40119ブラウズ

How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

Golang での動的 JSON キー解析

JSON 解析の領域では、JSON 文字列のトップレベルで動的キーの課題に遭遇することがあります。次の JSON があるとします。

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`

タスクは、この JSON から「name」と「age」の値を抽出することですが、キー「bvu62fu6dq」は動的であり、ケースごとに異なります。

1 つのアプローチは、この動的キーに対応する構造体を定義することです。構造:

type Info struct {
   UniqueID map[string]string
 }

ただし、この構造は、「名前」と「年齢」の実際の抽出を処理する際に課題に直面しています。

このような動的な JSON 構造を効果的に解析するには、次の機能を活用できます。 Golang の「encoding/json」パッケージの。解決策は次のとおりです:

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

type Info map[string]Person

この設定では、動的なトップレベル キー (例: "bvu62fu6dq") をキーとしたマップを使用する、より柔軟なアプローチが採用されています。 「人」構造体は、各動的サブオブジェクト (「名前」や「年齢」など) から抽出しようとするデータをカプセル化します。

この設定により、JSON をデコードして特定の値を抽出することが簡単になります。 :

var info Info

err := json.Unmarshal([]byte(j), &info)
if err != nil {
    // Handle error
}

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)

この包括的なソリューションは、動的なトップレベルの JSON キーを処理するだけでなく、特定のフィールド (例: 「名前」や「名前」など) の抽出もサポートします。 "age") を各サブオブジェクトから取得します。

以上がGo で動的 JSON キーを解析して特定のフィールドを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。