Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menafikan JSON ke dalam objek C# tanpa pembina lalai?

Bagaimana untuk menafikan JSON ke dalam objek C# tanpa pembina lalai?

Linda Hamilton
Linda Hamiltonasal
2025-01-29 16:26:10668semak imbas

How to Deserialize JSON into C# Objects Without a Default Constructor?

c# json revitalisasi: memintas fungsi struktur lalai

Apabila menggunakan JSON.NET untuk mengurutan data JSON ke dalam objek C#, ia biasanya lebih suka menggunakan pembina lalai. Walau bagaimanapun, jika pembina bukan -default diperlukan, anda boleh menggunakan atribut

.

[JsonConstructor] Gunakan

atribut

[JsonConstructor] dengan menambah atribut kepada pembina bukan -default, json.net akan menggunakannya untuk bersiri. Parameter fungsi konstruktif mesti sepadan dengan nama atribut JSON, dan kes itu tidak dibezakan. Atribut bahawa parameter fungsi konstruktif tidak dilindungi masih boleh diisi oleh pewawancara awam atau atribut lain.

Contoh: [JsonConstructor] [JsonProperty]

jsonconveter [JsonConstructor] Jika anda tidak dapat mengubah suai kod secara langsung atau menambah atribut, anda boleh membuat adat

:
<code class="language-csharp">[JsonConstructor]
public Result(int? code, string format, Dictionary<string, string> details = null)
{
    ...
}</code>

Kemudian, tambahkan penukar ke tetapan program Serialization JSON, dan gunakannya semasa tempoh bergantung:

Dengan menggunakan teknologi ini, walaupun terdapat pembina lalai, anda juga boleh mengubah data JSON ke objek tanpa bergantung pada pembina lalai. JsonConverter

Atas ialah kandungan terperinci Bagaimana untuk menafikan JSON ke dalam objek C# tanpa pembina lalai?. 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