JSON 逆シリアル化におけるインターフェイス アサーションについて
Go では、JSON データを特定のデータ構造に逆シリアル化すると、インターフェイス変換エラーが発生することがあります。これは通常、インターフェイス型を別の構造体型にアサートしようとしたときに発生します。
次の例を考えてみましょう。
type Data struct { Content string Links []string }
JSON を Data 型の変数に逆シリアル化する場合、アサートすることが不可欠です。インターフェイス変数 (anInterface) に予期されるデータ型が含まれていることを確認します。次の式を割り当てると、ランタイム エラーが発生します:
AData2 = anInterface.(Data)
このエラーは、Go が anInterface が Map[string]interface{} であることを期待しているのに、実際には Data 型のオブジェクトが含まれているために発生します。これを解決するには、anInterface がデータと構造的に互換性のある値を参照していることを確認することが重要です。
正しい逆シリアル化アプローチ
JSON データをデータに逆シリアル化する適切な方法データ構造は、その変数に直接アンマーシャルすることです:
var AData2 Data err := json.Unmarshal([]byte(value), &AData2) if err != nil { panic(err) }
そうすることで、Go JSON と目的のデータ型の間の変換を自動的に処理し、実行時に型アサーション エラーが発生しないようにします。
以上がGo で JSON を逆シリアル化するときにインターフェイス アサーション エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。