Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Namespace System.Text.Json menyediakan fungsionalitas untuk serialisasi dan deserialisasi dari JavaScript Object Notation (JSON), atau dikenal juga sebagai marshalling dan unmarshalling. Serialisasi adalah proses mengonversi status objek, yaitu, nilai propertinya, menjadi bentuk yang dapat disimpan atau ditransmisikan. Formulir berseri tidak menyertakan informasi apa pun tentang metode terkait objek. Deserialisasi merekonstruksi objek dari formulir yang diserialisasikan.
Desain System.Text.Json pustaka memprioritaskan performa tinggi dan alokasi memori rendah dibandingkan dengan set fitur yang luas. Dukungan UTF-8 bawaan mengoptimalkan proses membaca dan menulis teks JSON yang dikodekan sebagai UTF-8, yang merupakan pengodean paling umum untuk data di web dan file di disk.
Pustaka juga menyediakan kelas untuk bekerja dengan model objek dokumen (DOM) di dalam memori. Fitur ini memungkinkan akses acak ke elemen dalam file atau string JSON.
Untuk Visual Basic, ada beberapa batasan pada bagian pustaka apa yang dapat Anda gunakan. Untuk informasi selengkapnya, lihat dukungan (Visual Basic).
Cara mendapatkan perpustakaan
Pustaka terintegrasi sebagai bagian dari kerangka bersama untuk .NET Core 3.0 dan versi yang lebih baru. Fitur pembuatan sumber adalah bawaan sebagai bagian dari kerangka kerja bersama untuk .NET 6 dan versi yang lebih baru.
Untuk versi kerangka kerja yang lebih lama dari .NET Core 3.0, instal paket NuGet System.Text.Json. Paket ini mendukung:
- .NET Standard 2.0 dan yang lebih baru
- .NET Framework 4.6.2 dan yang lebih baru
- .NET 8 dan yang lebih baru
Namespace dan API
- Namespace System.Text.Json berisi semua titik masuk dan jenis utama.
- Namespace System.Text.Json.Serialization berisi atribut dan API untuk skenario tingkat lanjut dan penyesuaian khusus untuk serialisasi dan deserialisasi.
- Namespace System.Net.Http.Json berisi metode ekstensi untuk menserialisasikan dan mendeserialisasi payload JSON dari jaringan.
Penting
System.Text.Json tidak mendukung API serialisasi berikut yang mungkin telah Anda gunakan sebelumnya:
- Atribut dari namespace System.Runtime.Serialization.
- Atribut System.SerializableAttribute dan ISerializable antarmuka. Jenis ini hanya digunakan untuk serialisasi Biner dan XML.
Refleksi vs. pembuatan sumber
Secara default, System.Text.Json mengumpulkan metadata yang diperlukan untuk mengakses properti objek untuk serialisasi dan deserialisasi pada saat menjalankan menggunakan refleksi. Sebagai alternatif, System.Text.Json dapat menggunakan fitur pembuatan sumber C# untuk meningkatkan performa, mengurangi penggunaan memori privat, dan memfasilitasi pemangkasan rakitan, yang mengurangi ukuran aplikasi.
Untuk informasi selengkapnya, lihat Refleksi versus generasi sumber.
Informasi keamanan
Untuk informasi tentang ancaman keamanan yang dipertimbangkan saat merancang JsonSerializer, dan bagaimana ancaman tersebut dapat dimitigasi, lihat System.Text.Json Model Ancaman.
Keamanan utas
Serializer System.Text.Json dirancang dengan mengingat keamanan utas. Praktis, ini berarti bahwa setelah dikunci, JsonSerializerOptions instans dapat dibagikan dengan aman di beberapa utas.
JsonDocument menyediakan representasi DOM yang tidak dapat diubah, dan dalam .NET 8 dan versi yang lebih baru, aman utas, representasi DOM untuk nilai JSON.