Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mensiri Sifat JSON sebagai Nilai Daripada Objek?

Bagaimana untuk Mensiri Sifat JSON sebagai Nilai Daripada Objek?

DDD
Lepaskan: 2025-01-03 09:24:43
asal
905 orang telah melayarinya

How to Serialize JSON Properties as Values Instead of Objects?

Mensiri Sifat JSON sebagai Nilai

Apabila menggunakan perwakilan JSON dalam kod anda, anda mungkin menghadapi situasi di mana anda ingin mensirikan harta sebagai nilai dan bukannya objek. Ini adalah untuk mencapai format JSON yang lebih ringkas dan diingini.

Mari kita pertimbangkan contoh berikut yang melibatkan kelas Kereta dan StringId:

class Car
{
    public StringId Id { get; set; }
    public string Name { get; set; }
}

class StringId
{
    public string Value { get; set; }
}

// Desired representation
{ "Id": "someId", "Name": "Ford" }

// Default (undesired) representation
{ "Id" : { "Value": "someId" }, "Name": "Ford" }
Salin selepas log masuk

Perwakilan JSON yang dikehendaki menghapuskan objek bersarang untuk Id dan terus memaparkan Nilainya. Untuk mencapai matlamat ini, kami boleh menggunakan dua pendekatan:

Menggunakan TypeConverter

Dengan melaksanakan TypeConverter untuk StringId, JSON.NET akan menggunakannya secara automatik untuk menukar harta kepada rentetan:

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

class StringIdConverter : TypeConverter
{
    // Implementation omitted for brevity...
}
Salin selepas log masuk

Menggunakan a JsonConverter

Pendekatan ini memerlukan anda menambah atribut JSON.NET khusus pada kelas StringId anda:

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

class StringIdConverter : JsonConverter
{
    // Implementation omitted for brevity...
}
Salin selepas log masuk

Dalam kedua-dua kes, penukar membaca dan menulis nilai secara terus, menghasilkan perwakilan JSON yang dikehendaki:

{ "Id": "someId", "Name": "Ford" }
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mensiri Sifat JSON sebagai Nilai Daripada Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan