JSON ペイロードを操作する場合、不明な形式のデータを処理するのは困難な場合があります。この状況は、JSON 構造内のキーと値が事前定義されていない場合に発生します。これに対処するために、Go は未知の形式をアンマーシャリングするためのいくつかのアプローチを提供します。
提供された JSON データでは、キーは科目を表し、値は生徒の成績の配列です。このデータを効果的にアンマーシャリングするには、次の手法を利用できます。
オプション 1: map[string] インターフェイスを使用する{}
キーが完全に不明な場合は、 map[string]interface{} を使用して JSON ペイロードをアンマーシャリングできます。このメソッドは、キーが文字列で、値が非マーシャリング データを表すインターフェイスであるマップを作成します。
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades)
オプション 2: カスタム構造体の使用
Ifデータを表現したい特定の構造がある場合は、カスタム構造体を作成し、json:"-" を使用してアンマーシャリング中に不明なキーを無視できます。タグ。 GradeData 構造体の Grades フィールドには、アンマーシャリングされたデータがマップ[文字列]インターフェイス{}として含まれます。
type GradeData struct { Grades map[string]interface{} `json:"-"` } gradesData := GradeData{} err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
これらのアプローチのいずれかを利用することで、未知の形式の JSON データを効果的にアンマーシャリングし、 Go のデータ。アプリケーションの要件に最も適した方法を選択することが重要です。
以上がGo で不明なキーと値を含む JSON データをアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。