パニック: JSON 配列を Go Struct にアンマーシャルします
JSON API からのデータを解析しようとすると、エラーが発生しました: 「パニック: json: 配列を main.Structure 型の Go 値にアンマーシャリングできません。」この問題は、JSON 配列を Go 構造体にアンマーシャリングするときに発生します。
コード:
type Structure struct { stuff []interface{} } func main() { // ... decoded := &Structure{} err = json.Unmarshal(body, decoded) }
期待される結果:
コードがインターフェースのリストを返すことを期待していましたオブジェクト.
実際の結果:
代わりに、JSON 配列を Structure Go 値にアンマーシャリングできないことを示すエラーを受け取りました。
解決策:
この問題を解決するには、2 つのことを検討してください。アプローチ:
スライスへのアンマーシャル:
行を次のように置き換えます:
decoded := &Structure{}
:
var data []interface{}
これにより、JSON 配列がスライスにアンマーシャリングされます。インターフェイス。
構造体のスライスへのアンマーシャル:
応答データ構造用の特定の構造体を作成します。例:
type Tick struct { ID string Name string Symbol string Rank string Price_USD string }
次に、次の構造体のスライスにアンマーシャルします:
var data []Tick err = json.Unmarshal(body, &data)
以上がJSON で配列を Go 構造体にアンマーシャリングするとパニックが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。