Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahseri JSON dengan Medan Tidak Diketahui Menggunakan JsonExtensionDataAttribute?
Mengendalikan penyahserikatan JSON yang mengandungi medan yang diketahui dan tidak diketahui
Apabila memproses hasil JSON, anda sering menghadapi situasi di mana data yang diterima mengandungi medan yang diketahui, serta medan lain yang tidak diketahui semasa permintaan dibuat. Ini boleh menyebabkan cabaran apabila cuba menyahsiri data menjadi objek berstruktur.
Satu cara untuk menangani perkara ini ialah menggunakan perpustakaan seperti JSON.NET, yang membenarkan penghurai kontrak tersuai. Walau bagaimanapun, menyediakan penyelesai kontrak tersuai boleh menjadi rumit.
Penyelesaian lain ialah menggunakan JsonExtensionDataAttribute dalam JSON.NET. Sifat ini membolehkan anda menentukan medan tambahan dalam objek yang akan mengandungi semua medan yang tidak diketahui daripada JSON.
Berikut ialah contoh cara menggunakan hartanah ini:
<code class="language-csharp">public class Product { public string Id { get; set; } public string Name { get; set; } // 此属性将包含来自JSON的所有未知字段 [JsonExtensionData] private IDictionary<string, JToken> ExtraFields { get; set; } }</code>
Apabila anda menggunakan kelas ini untuk menyahsiri objek JSON, medan yang diketahui (Id dan Nama) dipetakan pada sifat objek. Medan yang tidak diketahui akan disimpan dalam kamus ExtraFields. Anda kemudiannya boleh mengakses medan tambahan ini menggunakan operasi kamus standard, contohnya:
<code class="language-csharp">Console.WriteLine(product.ExtraFields["_unknown_field_name_1"]);</code>
Pendekatan ini memudahkan pemetaan medan yang tidak diketahui dengan memanfaatkan keupayaan terbina dalam JSON.NET. Ia memerlukan JSON.NET 5 atau lebih tinggi.
Atas ialah kandungan terperinci Bagaimana untuk Menyahseri JSON dengan Medan Tidak Diketahui Menggunakan JsonExtensionDataAttribute?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!