値型が混在した JSON 配列のアンマーシャリング
さまざまな型の値を含む JSON 配列のアンマーシャリングは、要件により Go で課題となる可能性がありますGo での明示的な型定義の場合arrays.
ケーススタディ:
次の無効な JSON の例を考えてみましょう:
["NewYork", 123]
この配列を Go 配列にデコードしようとすると、 Go 配列には固定タイプが必要ですが、このタイプでは不明なため失敗します。 case.
解決策:
この制限を克服するために、Go はあらゆる型の値を保存できるインターフェース型を提供します。{}以下に示すように、interface{} を利用することで、混合値型を含む JSON 配列をアンマーシャリングすることが可能になります。
const j = `{"NYC": ["NewYork", 123]}` type UntypedJson map[string][]interface{} func main() { ut := UntypedJson{} fmt.Println(json.Unmarshal([]byte(j), &ut)) fmt.Printf("%#v", ut) }
この例では、文字列キーのスライスへのマップとしてカスタム型 UntypedJson を定義します。インタフェース{}。その後、JSON 配列は UntypedJson インスタンスにアンマーシャリングされます。 fmt.Printf ステートメントは、JSON 配列からの混合値を含む非マーシャリング データを表示します。
interface{} タイプを利用することで、さまざまな型の値を含む JSON 配列をアンマーシャリングすることが可能になり、より多くのデータを提供します。複雑なデータ シナリオに対応する柔軟で多用途なソリューション。
以上がGo でデータ型が混在した JSON 配列をアンマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。