ホームページ > バックエンド開発 > Golang > 不明なキーと変数構造を持つ入れ子になった JSON をアンマーシャリングするにはどうすればよいですか?

不明なキーと変数構造を持つ入れ子になった JSON をアンマーシャリングするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-21 10:37:11
オリジナル
966 人が閲覧しました

How to Unmarshal Nested JSON with Unknown Keys and Variable Structure?

不明なキーと変数構造を使用したネストされた JSON のアンマーシャリング

提供された JSON では、さまざまなサーバーの詳細を表すネストされたオブジェクトのキー (例: 、「Server1.example.com」、「Server2.example.com」)は不明であり、 変化する。さらに、ネストされたオブジェクト構造には、明示的なキーのない固有のフィールド (「名前」) が含まれています。

この JSON データを効果的にアンマーシャリングするには、未知のキーと変数オブジェクト構造を動的に処理できるアプローチが必要です。

実行可能な解決策の 1 つは、map[string]ServerDetails 構造を利用することです。これにより、キーがサーバー名 (例: "Server1.example.com"、"Server2.example.com") に対応するキーと値のペアを保存できるようになります。マップ内の各値は、サーバー固有の詳細を含む ServerDetails 構造体になります。

変更された構造は次のようになります。

type YourStruct struct {
    Success bool
    ResponseMS int
    Servers map[string]*ServerDetails
}

type ServerDetails struct {
    Application string
    Owner string
    [...]
}
ログイン後にコピー

JSON データをアンマーシャリングするには、次の手順を実行します。

  1. JSON を一時的なマップ[文字列]インターフェイス{}構造にアンマーシャリングします。これにより、不明なキーと変数オブジェクト構造が保持されます。
  2. 一時マップを反復処理し、不明なキー (サーバー名) ごとに新しい ServerDetails 構造体を作成します。
  3. 各サーバーのネストされた JSON をアンマーシャリングします。必要に応じて追加の JSON タグを使用して、それぞれの ServerDetails 構造体に追加します。
  4. 最後に、設定された ServerDetails 構造体を Servers マップに割り当てます。 YourStruct.

このアプローチを採用すると、未知のキーや変数オブジェクト構造であっても、JSON データを構造化形式にアンマーシャリングできます。

以上が不明なキーと変数構造を持つ入れ子になった JSON をアンマーシャリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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