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
Mary-Kate Olsenasal
2024-12-30 12:57:10640semak imbas

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)
}

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)
}

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() }
};

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!

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