ホームページ >バックエンド開発 >Golang >Go で不明なキーと値を含む JSON データをアンマーシャリングする方法

Go で不明なキーと値を含む JSON データをアンマーシャリングする方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 09:34:11639ブラウズ

How to Unmarshal JSON Data with Unknown Keys and Values in Go?

不明な形式の JSON データのアンマーシャリング

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

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