Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memetakan Hartanah JSON Bersarang kepada Sifat C# Mudah?

Bagaimana untuk Memetakan Hartanah JSON Bersarang kepada Sifat C# Mudah?

Patricia Arquette
Patricia Arquetteasal
2025-01-24 22:57:11573semak imbas

How to Map Nested JSON Properties to Simple C# Properties?

atribut mudah yang memetakan sub -attribute JSON ke objek C#

Pengenalan

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:

Buat JsonConverter Custom

<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn