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.

# Konsep Serialization

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.Json

Kenali System.Text.Json, serializer JSON bawaan .NET, beserta tiga API utamanya untuk serialisasi, deserialisasi, dan pembacaan dokumen JSON.

Buka →
# JSON Serialization

Serialisasi object C# menjadi string JSON dengan JsonSerializer, termasuk perilaku default penamaan properti dan escaping karakter khusus.

Buka →
# JSON Deserialization

Mengubah teks JSON kembali menjadi object C# dengan JsonSerializer.Deserialize serta memahami pencocokan nama properti yang sensitif huruf besar-kecil.

Buka →
# JSON Options dan Konverter

Menyesuaikan perilaku System.Text.Json melalui JsonSerializerOptions: naming policy, indentasi, dan opsi lain yang paling sering dipakai.

Buka →
# Custom JSON Converter

Menulis JsonConverter<T> sendiri untuk mengatur cara tipe kustom dibaca dan ditulis, termasuk validasi nilai saat deserialization.

Buka →
# XML Serialization

Serialisasi object menjadi XML dengan XmlSerializer, termasuk syarat class yang boleh diserialisasi dan bentuk keluaran defaultnya.

Buka →
# XmlReader dan XmlWriter

Menulis dan membaca XML secara streaming dengan XmlWriter dan XmlReader tanpa memetakan dokumen ke class.

Buka →
# CSV Data Handling

Memproses CSV secara manual dengan parser sederhana dan memahami jebakan string.Split ketika koma berada di dalam tanda kutip.

Buka →
# Binary Data Formats

Menulis dan membaca data biner dengan BinaryWriter dan BinaryReader, termasuk memahami urutan tipe yang menentukan panjang hasil.

Buka →
# Versioning Data Contract

Menjaga serialisasi tetap aman ketika schema berubah: properti baru, properti hilang, dan penegakan properti wajib dengan kata kunci required.

Buka →
# Polymorphic Serialization

Menyerialisasi hierarki class dengan atribut JsonPolymorphic dan JsonDerivedType, termasuk peran type discriminator saat deserialization.

Buka →
# Serialization Security

Risiko keamanan deserialisasi data dari pihak tidak dipercaya, penanganan JsonException, dan status BinaryFormatter di .NET 9.

Buka →