二重アンマーシャリングを使用しない Go での JSON のアンマーシャリング
Go では、JSON をさまざまな構造体に解析する必要がある状況に直面する可能性があります。しかし、二重のアンマーシャリングが発生し、冗長性が生じます。この記事では、2 番目のアンマーシャリング ステップを回避するために、データを部分的にアンマーシャリングするソリューションを紹介します。
問題を理解する
JSON を既知の構造体に解析しようとすると、一般的なアプローチは次のとおりです:
解決策
値をインターフェースにキャストする代わりに、値を json.RawMessage にアンマーシャリングできます。{}これにより、データが部分的にアンマーシャリングされ、キー値に基づいて特定の構造体へのアンマーシャリングが可能になります。
サンプル コード
この変更されたコードでは、マップを置き換えます。 [string]インターフェイス{}とmap[string]json.RawMessage。 「ack」キーを処理するときは、Ack 構造体に直接アンマーシャリングするため、二重アンマーシャリングの必要がなくなります。
以上がGo で JSON を解析するときに二重アンマーシャリングを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。