Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyesuaikan Pensirilan JSON dalam .NET 7 dengan IJsonTypeInfoResolver?

Bagaimana untuk Menyesuaikan Pensirilan JSON dalam .NET 7 dengan IJsonTypeInfoResolver?

Susan Sarandon
Lepaskan: 2024-12-28 22:47:13
asal
112 orang telah melayarinya

How to Customize JSON Serialization in .NET 7 with IJsonTypeInfoResolver?

Cara Melaksanakan IContractResolver dalam System.Text.Json

Pengenalan

Ruang nama System.Text.Json ialah sebuah alternatif moden kepada Newtonsoft.Json, menyediakan siri JSON berprestasi tinggi dan penyahserikatan dalam .BERSIH. Satu ciri yang sebelum ini tidak tersedia dalam System.Text.Json ialah cara untuk menyesuaikan proses penyelesaian kontrak, serupa dengan antara muka IContractResolver dalam Newtonsoft.Json. Walau bagaimanapun, keupayaan ini kini tersedia dalam .NET 7 melalui pelaksanaan IJsonTypeInfoResolver.

Jawapan

Ciri .NET 7 Baharu: IJsonTypeInfoResolver

Daripada .NET 7, the Ruang nama System.Text.Json memperkenalkan antara muka IJsonTypeInfoResolver, yang membolehkan penyesuaian kontrak. Menggunakan antara muka ini, pembangun boleh mencipta penyelesai kontrak tersuai yang mengubah suai metadata untuk jenis tertentu semasa penyiaran dan penyahsirilan.

DefaultJsonTypeInfoResolver

Pasukan System.Text.Json mempunyai menyediakan penyelesai kontrak lalai, DefaultJsonTypeInfoResolver, yang melaksanakan Antara muka IJsonTypeInfoResolver. Penyelesai ini menawarkan fungsi yang serupa dengan DefaultContractResolver dalam Newtonsoft.Json. Anda boleh mensubkelaskan DefaultJsonTypeInfoResolver atau menambah pengubah padanya untuk menyesuaikan metadata kontrak mengikut keperluan anda.

Penggunaan DefaultJsonTypeInfoResolver dengan Modifiers

Untuk menyesuaikan kerja Selective anda denganSerializer System.Text.Json, anda boleh menggunakan Kaedah sambungan SerializeSelectedFields pada DefaultJsonTypeInfoResolver:

var options = new JsonSerializerOptions
{
    TypeInfoResolver = new DefaultJsonTypeInfoResolver()
        .SerializeSelectedFields("FirstName,Email,Id"),
    // Add other options as required
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase, 
    WriteIndented = true,
};
Salin selepas log masuk

Ini akan secara terpilih mensiri hanya sifat yang ditentukan semasa penyirian.

Nota Tambahan

    >
  • JsonPropertyInfo.AttributeProvider mengembalikan PropertyInfo atau FieldInfo asas apabila dicipta oleh penyelesai pantulan atau gen sumber.
  • Metadata siri hendaklah dibina menggunakan rentetan logik-invarian. 🎜>

Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Pensirilan JSON dalam .NET 7 dengan IJsonTypeInfoResolver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan