
JSON 逆シリアル化の動的キー
動的キーを含む JSON データを扱う場合、オブジェクトのプロパティにアクセスするのは困難な場合があります。次のデータについて考えてみましょう:
{
"users" : {
"100034" : {
"name" : "tom",
"state" : "WA",
"id" : "cedf-c56f-18a4-4b1"
},
"10045" : {
"name" : "steve",
"state" : "NY",
"id" : "ebb2-92bf-3062-7774"
},
"12345" : {
"name" : "mike",
"state" : "MA",
"id" : "fb60-b34f-6dc8-aaf7"
}
}
}この JSON オブジェクトでは、キーが数値文字列であるため、静的なプロパティ名を持つクラスを定義することが困難になります。これを解決するには、Dictionary
クラス構造と逆シリアル化
次のクラスを定義します:
class RootObject
{
public Dictionary<string, User> users { get; set; }
}
class User
{
public string name { get; set; }
public string state { get; set; }
public string id { get; set; }
}次に、次のように JSON データを逆シリアル化できます。
RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
これDictionary
オブジェクト プロパティへのアクセス
辞書キーを使用してオブジェクト プロパティにアクセスできるようになりました。次のコードはユーザーを介して反復されます:
foreach (string key in root.users.Keys)
{
User user = root.users[key];
// Access properties using user.name, user.state, etc.
}出力:
key: 10045 name: steve state: NY id: ebb2-92bf-3062-7774 key: 12345 name: mike state: MA id: fb60-b34f-6dc8-aaf7 key: 100034 name: tom state: WA id: cedf-c56f-18a4-4b1
このアプローチにより、動的キーを使用して JSON データを逆シリアル化し、オブジェクトのプロパティにシームレスにアクセスできます。
以上がC# で動的キーを使用して JSON を逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。