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 サイトの他の関連記事を参照してください。