Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengendalikan Penetapan Peribadi Semasa Penyahserialisasian JSON dengan Json.Net?

Bagaimanakah Saya Boleh Mengendalikan Penetapan Peribadi Semasa Penyahserialisasian JSON dengan Json.Net?

Linda Hamilton
Lepaskan: 2025-01-04 11:23:39
asal
239 orang telah melayarinya

How Can I Handle Private Setters During JSON Deserialization with Json.Net?

Json.Net Private Setter Handling

Json.Net tidak mempunyai gelagat lalai terbina dalam untuk mengendalikan private setter semasa penyahserialisasian. Walau bagaimanapun, ia menyediakan cara untuk menentukan tingkah laku ini secara eksplisit menggunakan atribut.

Atribut [JsonProperty]

Atribut [JsonProperty] boleh digunakan untuk mengarahkan Json.Net untuk mengisi harta baca sahaja dengan penetap persendirian apabila penyahserikatan. Menambah atribut ini pada sifat baca sahaja akan membolehkannya ditetapkan semasa penyahserikatan.

Contoh:

[JsonProperty]
public Guid? ClientId { get; private set; }
Salin selepas log masuk

Penyelesaian Alternatif: Pembina dengan Parameter

Pendekatan lain untuk mengendalikan penetap persendirian ialah menyediakan pembina yang mempunyai parameter yang sepadan dengan harta yang anda ingin tetapkan. Pembina ini akan digunakan apabila menyahsiri objek JSON.

Contoh:

public class Foo
{
    public string Bar { get; }

    public Foo(string bar)
    {
        Bar = bar;
    }
}
Salin selepas log masuk

Dengan cara ini, anda boleh menyahsiri rentetan JSON seperti ini:

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow
Salin selepas log masuk

Yang manakah penyelesaian untuk digunakan bergantung pada keperluan khusus aplikasi anda. Atribut [JsonProperty] menyediakan cara mudah untuk mengendalikan penetap peribadi, tetapi ia memerlukan hiasan atribut pada sifat. Pendekatan alternatif menggunakan pembina mengelakkan hiasan atribut dan berfungsi dengan kedua-dua penetap peribadi dan awam.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Penetapan Peribadi Semasa Penyahserialisasian JSON dengan Json.Net?. 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