ホームページ >バックエンド開発 >Golang >Go で変数配列フィールド型を使用して JSON をアンマーシャリングする方法

Go で変数配列フィールド型を使用して JSON をアンマーシャリングする方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 04:51:09447ブラウズ

How to Unmarshal JSON with Variable Array Field Types in Go?

Go での変数配列フィールド型を使用した JSON のアンマーシャリング

Go では、JSON データは事前​​定義された構造体にアンマーシャリングされます。ただし、キーの値のタイプがリクエスト間で異なる場合、特定の API レスポンスでは課題が発生する可能性があります。たとえば、API は特定のキーのインライン オブジェクトまたはオブジェクト参照を返す可能性があります。

この変動性を処理するには、次のアプローチの使用を検討してください。

type Data struct {
    MyKey []interface{} `json:"mykey"`
}

この構造は両方のインライン オブジェクトをアンマーシャリングします。インターフェイスの配列へのオブジェクト参照。アンマーシャリング後に型スイッチを使用すると、配列内の各要素の実際の型を決定できます。

for _, v := range data.MyKey {
    switch x := v.(type) {
    case string:
        fmt.Println("Got a string: ", x)
    case map[string]interface{}:
        fmt.Printf("Got an object: %#v\n", x)
    }
}

このメソッドを使用すると、柔軟かつ慣用的な方法で、可変の配列フィールド型を持つ JSON データを解析できます。

以上がGo で変数配列フィールド型を使用して JSON をアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。