Bagikan melalui


System.Text.Json memerlukan string karakter tunggal untuk mendeserialisasi karakter

Agar berhasil mendeserialisasi Char menggunakan System.Text.Json, string JSON harus berisi satu karakter.

Deskripsi perubahan

Dalam versi .NET sebelumnya, string multi-dichar JSON berhasil dideserialisasi ke char properti atau bidang. Hanya string pertama char yang digunakan, seperti dalam contoh berikut:

// .NET Core 3.0 and 3.1: Returns the first char 'a'.
// .NET 5 and later: Throws JsonException because payload has more than one char.
char deserializedChar = JsonSerializer.Deserialize<char>("\"abc\"");

Di .NET 5 dan yang lebih baru, apa pun selain string tunggalchar menyebabkan JsonException dilemparkan ketika target deserialisasi adalah char. Contoh string berikut berhasil dideserialisasi di semua versi .NET:

// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");

Versi yang diperkenalkan

5.0

Alasan untuk berubah

Penguraian untuk deserialisasi hanya boleh berhasil ketika payload yang disediakan berlaku untuk jenis target. Untuk jenis char , satu-satunyachar payload yang valid adalah string tunggal.

Ketika Anda mendeserialisasi JSON ke dalam char target, pastikan string terdiri dari satu char.

API yang Terpengaruh