問題を理解する:
データを解析しようとするときJSON API から予期しないエラーが発生します: 「パニック: json: アンマーシャルできません」配列を main.Structure 型の Go 値に変換します。」このエラーは、JSON データと定義された Go 構造体の間に不一致があることを示しています。
不一致の特定:
コードを調べると、Structure タイプが次のことを期待していることがわかります。 「スタッフ」フィールドとしてのインターフェース オブジェクトの配列。{}ただし、解析される JSON データは、interface オブジェクトの配列ではなく、配列そのものです。
解決策 1: スライスにアンマーシャルする
不一致を解決するには代わりに、JSON 配列をインターフェース オブジェクトのスライスにアンマーシャリングすることをお勧めします。{}このようにして、JSON 配列構造は Go コード内に保持されます。
var data []interface{} err = json.Unmarshal(body, &data)
解決策 2: 特定の構造体フィールドを定義する
または、JSON 応答データが一貫した構造を必要とする場合は、応答に存在するフィールドと正確に一致する Go 構造体を定義することを検討してください。これにより、より構造化されたタイプセーフなアンマーシャリング プロセスが可能になります。
type Tick struct { ID string Name string Symbol string Rank string Price_USD string ... and so on } var data []Tick err = json.Unmarshal(body, &data)
これらのアプローチのいずれかを採用することで、アプリケーションは JSON データを正常に解析し、「配列を Go 値にアンマーシャリングできません」エラーを回避できます。
以上が「json: 配列を Go 値にアンマーシャリングできません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。