ホームページ > バックエンド開発 > Golang > 「json: 配列を main.Structure 型の Go 値にアンマーシャリングできません」が発生する理由と修正方法

「json: 配列を main.Structure 型の Go 値にアンマーシャリングできません」が発生する理由と修正方法

Patricia Arquette
リリース: 2024-12-02 00:44:13
オリジナル
924 人が閲覧しました

Why Does

配列と構造体型のアンマーシャリング

JSON データを構造体に解析しようとする場合、データ構造と構造体の互換性を確保することが重要です。ターゲットタイプ。次のエラー メッセージ:

panic: json: cannot unmarshal array into Go value of type main.Structure
ログイン後にコピー

は、アプリケーションが配列を JSON から別の型を予期する構造体にアンマーシャリングしようとしていることを示します。

この問題を解決するには、次の解決策を検討してください。 :

  • アンマーシャルスライス:

JSON データがオブジェクトの配列の場合、JSON データの構造に応じて、インターフェイスのスライスまたは特定の構造体のスライスにアンマーシャリングします。

var data []interface{}
err = json.Unmarshal(body, &data)

// Unmarshal to specific structs:
type Tick struct {
     ID string
     Name string
     ...
}

var data []Tick
err = json.Unmarshal(body, &data)
ログイン後にコピー
  • を変更します構造体:

既存の構造体を保持する必要がある場合は、配列を受け入れるようにそのフィールドの型を変更することを検討してください:

type Structure struct {
     stuff [][]interface{} // Change to a slice of slices
}
ログイン後にコピー

以上が「json: 配列を main.Structure 型の Go 値にアンマーシャリングできません」が発生する理由と修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート