ホームページ > バックエンド開発 > Golang > Go でアンマーシャリング中に動的 JSON キーを処理するにはどうすればよいですか?

Go でアンマーシャリング中に動的 JSON キーを処理するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-07 13:02:13
オリジナル
734 人が閲覧しました

How to Handle Dynamic JSON Keys During Unmarshaling in Go?

JSON アンマーシャリングでの動的キーの処理: GoLang

GoLang では、JSON 内のキーが次の場合に JSON データを構造体にアンマーシャリングすることが困難になることがあります。動的であるか、構造体の特定のフィールドに直接マップできません。この記事では、マップを使用して動的キーとそれに関連付けられた値をキャプチャする方法を紹介することで、この問題の解決策を示します。

問題の説明:

次の構造体を考えてみましょう。

type X struct {
 A string `json:"a_known_string"`
 B string `json:"b_known_string"`
}
ログイン後にコピー

と JSON 文字列:

"{
 "any string" : {
   "a_known_string" : "some value",
   "b_known_string" : "another value" 
 }
}"
ログイン後にコピー

構造体を使用した標準の JSON Unmarshal 関数は、動的キー「任意の文字列」をキャプチャしません。

マップを使用した解決策:

この問題を解決するには、次を使用できます。動的なキーと値のペアを保存するマップ。以下に例を示します。

var m map[string]X
err := json.Unmarshal([]byte(jsnStr), &m)
ログイン後にコピー

このソリューションでは、m 変数は、キーが動的文字列であり、値が X 構造体のインスタンスであるマップになります。

このアプローチデータの構造化表現を維持しながら、動的キーとそれに対応する値をキャプチャできます。

Playground例:

提供されているプレイグラウンドの例は、ソリューションの使用法を示しています:

https://go.dev/play/p/tZ27zKhI9Ct

以上がGo でアンマーシャリング中に動的 JSON キーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート