ホームページ > バックエンド開発 > Golang > 配列を Go 構造体にマッピングするときに JSON アンマーシャルが失敗するのはなぜですか?

配列を Go 構造体にマッピングするときに JSON アンマーシャルが失敗するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-30 09:12:17
オリジナル
966 人が閲覧しました

Why Does JSON Unmarshal Fail When Mapping Arrays to Go Structs?

JSON 配列を Go 構造体にアンマーシャリングできません

プログラマが JSON API からのデータを解析しようとして、次のエラーが発生しました:パニック: json: 配列を Go の型の値にアンマーシャリングできませんmain.Structure."

問題の抜粋:

type Structure struct {
        stuff []interface{}
}

...

decoded := &Structure{}
err = json.Unmarshal(body, decoded)
ログイン後にコピー

期待される結果:

インターフェイス オブジェクトのリスト。

実際結果:

パニック: json: 配列を main.Structure 型の Go 値にアンマーシャリングできません

解決策:

問題は次の場合に発生します。 JSON 配列を Go 構造体にアンマーシャリングしようとしています。これを解決するには、次のいずれかを実行できます。

  • スライスへのアンマーシャル:
var data []interface{}
err = json.Unmarshal(body, &data)
ログイン後にコピー
  • スライスへのアンマーシャルの構造体:
type Tick struct {
     ID string
     Name string
     ... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)
ログイン後にコピー

応答データの構造に一致するように構造体の型をカスタマイズすることで、アンマーシャリング プロセスは JSON 配列を正常に解析します。

以上が配列を Go 構造体にマッピングするときに JSON アンマーシャルが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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