ホームページ > バックエンド開発 > Golang > JSON 配列を Go 構造体に解析するにはどうすればよいですか?

JSON 配列を Go 構造体に解析するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-26 18:01:15
オリジナル
886 人が閲覧しました

How to Parse JSON Arrays into Go Structs?

Go で JSON 配列を処理する方法

このクエリでは、Go で JSON 配列を解析する際に課題が生じます。 JSON 配列はオブジェクトのコレクションであり、指定された例では、API 呼び出しから返されるデータは複雑なオブジェクトの配列です。

この配列を解析するには、配列内のオブジェクトの構造。まず、PublicKey 構造体を定義します:

type PublicKey struct {
    name string
    price string
}
ログイン後にコピー

次に、PublicKey オブジェクトの配列全体を表す KeysResponse 構造体を定義する必要があります:

type KeysResponse struct {
    Collection []PublicKey
}
ログイン後にコピー

次に、JSON をアンマーシャリングします。 KeysResponse 型の変数:

keys := make([]PublicKey, 0)
err := json.Unmarshal([]byte(s), &keys)
if err == nil {
    fmt.Printf("%+v\n", keys)
} else {
    fmt.Println(err)
    fmt.Printf("%+v\n", keys)
}
ログイン後にコピー

json.Unmarshal 関数JSON から解析されたデータをキー変数に自動的に入力します。ただし、元の質問のコードには見落とされている詳細が含まれていました。PublicKey 構造体のフィールドをエクスポートする必要があります (大文字で始める)。

この変更を加えた後、コードは JSON 配列を正しく解析して出力します。目的の形式での結果:

[{Name:Galaxy Nexus Price:3460.00} {Name:Galaxy Nexus Price:3460.00}]
ログイン後にコピー

質問内の JSON テキストには小文字のフィールド名が含まれていますが、json パッケージはそれらに一致するほどインテリジェントであることに注意してください。

より複雑な JSON 構造の場合は、struct タグを使用して JSON フィールド名を struct フィールドに明示的にマップすることをお勧めします。さらに、マップのスライス ([]map[string]interface{}) へのアンマーシャリングは代替アプローチを提供しますが、手動のインデックス作成と型アサーションが必要です。

以上がJSON 配列を Go 構造体に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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