ホームページ > バックエンド開発 > Golang > Go で不明なキーまたは変数キーを使用して JSON データをアンマーシャリングする方法

Go で不明なキーまたは変数キーを使用して JSON データをアンマーシャリングする方法

Susan Sarandon
リリース: 2024-11-29 03:44:09
オリジナル
277 人が閲覧しました

How to Unmarshal JSON Data with Unknown or Variable Keys in Go?

可変キーを持つ不明な形式の JSON データをアンマーシャルする

不明なキーまたは可変キーを持つ JSON データを扱う場合、次のことが困難になる場合があります。アンマーシャリングの目的で特定の GoLang 構造体を定義します。この記事では、2 つの実行可能な解決策を提供することで、この問題に対処します。

解決策 1: map[string]interface を使用する{}

キーに関する知識がない場合JSON ペイロード内に存在する場合、文字列キーとインターフェース値を持つマップ(つまり、map[string]interface{})を利用できます。{}このアプローチにより、事前定義された構造体を必要とせずに、データの動的なアンマーシャリングが可能になります。例:

var grades map[string]interface{}

err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)
fmt.Printf("%#v\n", grades)
ログイン後にコピー

解決策 2: 無視されたフィールドを持つ構造体を使用する

構造体を使用したいが、アンマーシャリング中に不明なフィールドを無視したい場合は、次のようにします。これらのフィールドには json:"-" タグを使用できます。このタグは、プロセス中にこれらのフィールドを考慮しないように JSON デコーダーに指示します。例:

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)
fmt.Printf("%#v\n", gradesData)
ログイン後にコピー

どちらのソリューションも、未知のキーまたは可変キーを持つ JSON データを柔軟に処理できます。ただし、さらに処理やデータ操作を行う場合は、要件に応じてデータを特定の型にキャストする必要がある場合があります。

以上がGo で不明なキーまたは変数キーを使用して JSON データをアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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