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, };
Ini akan secara terpilih mensiri hanya sifat yang ditentukan semasa penyirian.
Nota Tambahan
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!