Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah JSON.NET boleh menyahsiri JSON dengan kekunci dinamik ke dalam objek yang boleh diakses dengan cekap?
Apabila bekerja dengan data JSON yang mengandungi objek dengan kekunci dinamik, penyahserialisasian kelas konvensional boleh menimbulkan cabaran. Artikel ini akan meneroka cara menangani senario ini menggunakan JSON.NET.
Pertimbangkan data JSON berikut:
{ "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" } } }
Bagaimana kita boleh mengakses setiap objek secara terus daripada data ini, tanpa memerlukan kunci manual menghuraikan?
JSON.NET menawarkan penyelesaian yang mudah untuk menyahsiri objek dengan kekunci dinamik menggunakan Kamus
Untuk mencapai ini, kami mentakrifkan dua kelas:
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; } }
string json = @" { ""users"": { ""10045"": { ""name"": ""steve"", ""state"": ""NY"", ""id"": ""ebb2-92bf-3062-7774"" }, ""12345"": { ""name"": ""mike"", ""state"": ""MA"", ""id"": ""fb60-b34f-6dc8-aaf7"" }, ""100034"": { ""name"": ""tom"", ""state"": ""WA"", ""id"": ""cedf-c56f-18a4-4b1"" } } }"; RootObject root = JsonConvert.DeserializeObject<RootObject>(json);
Kod berikut menunjukkan cara untuk mengakses objek dari data desiri:
foreach (string key in root.users.Keys) { Console.WriteLine("key: " + key); User user = root.users[key]; Console.WriteLine("name: " + user.name); Console.WriteLine("state: " + user.state); Console.WriteLine("id: " + user.id); Console.WriteLine(); }
Kod akan menghasilkan output berikut:
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
Atas ialah kandungan terperinci Bagaimanakah JSON.NET boleh menyahsiri JSON dengan kekunci dinamik ke dalam objek yang boleh diakses dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!