Objek hidup di memori, sedangkan API, file, dan database berbicara dalam format data seperti JSON dan XML. Serialization menjembatani keduanya. Section ini membahas System.Text.Json secara mendalam, format lain yang umum, serta risiko keamanan yang menyertai deserialisasi.
Pahami masalah inti yang diselesaikan serialization: mengubah objek di memori menjadi aliran byte agar dapat dikirim atau disimpan, lalu mengembalikannya dengan deserialization.
Buka → # System.Text.JsonKenali System.Text.Json, serializer JSON bawaan .NET, beserta tiga API utamanya untuk serialisasi, deserialisasi, dan pembacaan dokumen JSON.
Buka → # JSON SerializationSerialisasi object C# menjadi string JSON dengan JsonSerializer, termasuk perilaku default penamaan properti dan escaping karakter khusus.
Buka → # JSON DeserializationMengubah teks JSON kembali menjadi object C# dengan JsonSerializer.Deserialize serta memahami pencocokan nama properti yang sensitif huruf besar-kecil.
Buka → # JSON Options dan KonverterMenyesuaikan perilaku System.Text.Json melalui JsonSerializerOptions: naming policy, indentasi, dan opsi lain yang paling sering dipakai.
Buka → # Custom JSON ConverterMenulis JsonConverter<T> sendiri untuk mengatur cara tipe kustom dibaca dan ditulis, termasuk validasi nilai saat deserialization.
Buka → # XML SerializationSerialisasi object menjadi XML dengan XmlSerializer, termasuk syarat class yang boleh diserialisasi dan bentuk keluaran defaultnya.
Buka → # XmlReader dan XmlWriterMenulis dan membaca XML secara streaming dengan XmlWriter dan XmlReader tanpa memetakan dokumen ke class.
Buka → # CSV Data HandlingMemproses CSV secara manual dengan parser sederhana dan memahami jebakan string.Split ketika koma berada di dalam tanda kutip.
Buka → # Binary Data FormatsMenulis dan membaca data biner dengan BinaryWriter dan BinaryReader, termasuk memahami urutan tipe yang menentukan panjang hasil.
Buka → # Versioning Data ContractMenjaga serialisasi tetap aman ketika schema berubah: properti baru, properti hilang, dan penegakan properti wajib dengan kata kunci required.
Buka → # Polymorphic SerializationMenyerialisasi hierarki class dengan atribut JsonPolymorphic dan JsonDerivedType, termasuk peran type discriminator saat deserialization.
Buka → # Serialization SecurityRisiko keamanan deserialisasi data dari pihak tidak dipercaya, penanganan JsonException, dan status BinaryFormatter di .NET 9.
Buka →