Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memetakan Hartanah JSON Bersarang kepada Sifat C# Mudah?
atribut mudah yang memetakan sub -attribute JSON ke objek C#
Buat tingkah laku yang disesuaikan semula di Newtonsoft.json boleh dicapai dengan atribut dan penukar adat. Ini membolehkan anda memetakan sub -attribut objek JSON ke atribut mudah kelas C#, walaupun mereka tidak mempunyai objek yang sepadan.
Gunakan kaedah tambahan
Jika anda hanya memerlukan atribut tambahan, kaedah mudah adalah untuk menyelesaikan json anda sebagai jobject, isi kelas anda dengan toObject (), dan kemudian gunakan selectToken () untuk mengekstrak atribut tambahan. Contohnya:
<code class="language-csharp">string json = @" { ""name"" : ""Joe Shmoe"", ""age"" : 26, ""picture"": { ""id"": 123456, ""data"": { ""type"": ""jpg"", ""url"": ""http://www.someplace.com/mypicture.jpg"" } } }"; JObject jo = JObject.Parse(json); Person p = jo.ToObject<Person>(); p.ProfilePicture = (string)jo.SelectToken("picture.data.url");</code>Untuk penyelesaian yang lebih rumit, anda boleh membuat jsonConverter tersuai yang menggunakan teknologi di atas untuk memproses semua atribut yang ditandai dengan atribut JSONProperty. JsonConver boleh menggunakan refleksi untuk mencari atribut, memetakannya ke laluan JSON yang betul, dan mengisi atribut dengan sewajarnya.
penukar adat yang berkaitan
Gunakan harta [jsonconverter] untuk mengaitkan penukar ke kelas sasaran. Anda kemudian boleh memohon harta [JSONProperty] ke atribut yang diperlukan dan tentukan JSON PATH sebagai nama atribut.
<code class="language-csharp">class JsonPathConverter : JsonConverter { // ReadJson 实现在此处... }</code>
Selepas menggunakan atribut ini, anda boleh memperoleh JSON seperti biasa, dan pemetaan akan berlaku secara automatik.
Atas ialah kandungan terperinci Bagaimana untuk Memetakan Hartanah JSON Bersarang kepada Sifat C# Mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!