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 サイトの他の関連記事を参照してください。