Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mensiri/Menyahsiri Sifat JSON.Net sebagai Nilai Daripada Objek?

Bagaimanakah Saya Boleh Mensiri/Menyahsiri Sifat JSON.Net sebagai Nilai Daripada Objek?

Mary-Kate Olsen
Lepaskan: 2024-12-30 12:57:10
asal
640 orang telah melayarinya

How Can I Serialize/Deserialize JSON.Net Properties as Values Instead of Objects?

Json.Net: Mengendalikan Sifat sebagai Nilai Daripada Objek

Apabila menggunakan JSON.Net untuk mewakili objek kompleks, seperti Kereta dan Kelas StringId yang diterangkan dalam pengenalan, kadangkala wajar untuk mensiri/menyahserialisasikan sifat sebagai nilai biasa dan bukannya bersarang objek. Artikel ini menunjukkan dua pendekatan untuk mencapai ini: penukar jenis dan penukar JSON.

Penukar Jenis

Menambah penukar jenis khusus untuk kelas StringId akan membolehkan JSON.Net untuk menukarnya kepada/daripada rentetan semasa siri/penyahserialisasi:

[TypeConverter(typeof(StringIdConverter))]
class StringId
{
    public string Value { get; set; }
}

class StringIdConverter : TypeConverter
{
    // ... (Implement CanConvertFrom, CanConvertTo, ConvertFrom, and ConvertTo)
}
Salin selepas log masuk

Penukar JSON

Sebagai alternatif, penukar JSON menawarkan lebih kawalan ke atas proses penukaran. Dengan menggunakan penukar JSON tersuai pada kelas StringId, logik bersiri dan penyahseriiran boleh ditakrifkan secara eksplisit:

[JsonConverter(typeof(StringIdConverter))]
class StringId
{
    public string Value { get; set; }
}

class StringIdConverter : JsonConverter
{
    // ... (Implement CanConvert, ReadJson, and WriteJson)
}
Salin selepas log masuk

Konfigurasi Penukar Global

Penukar JSON juga boleh ditetapkan secara global. Contohnya, untuk mengendalikan semua sifat jenis StringId sebagai nilai:

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    Converters = { new StringIdConverter() }
};
Salin selepas log masuk

Pertimbangan Tambahan

  • Dalam Teras .Net, sokongan penukar jenis memerlukan JSON. Net 10.0.1 atau lebih baru.
  • Dalam binaan mudah alih JSON.Net, penukar taip sokongan tidak tersedia pada versi 10.0.3.
  • Apabila bekerja dengan data angka atau tarikh/masa dalam perwakilan rentetan, adalah penting untuk menggunakan budaya yang disediakan untuk memastikan mudah alih merentas budaya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri/Menyahsiri Sifat JSON.Net sebagai Nilai Daripada Objek?. 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