System.Text.Json 需要單一字元字串來還原序列化字元
若要使用 System.Text.Json 成功還原序列化 Char,JSON 字串必須包含單一字元。
變更描述
在舊版的 .NET 中,JSON 中的多 char
字串已成功還原序列化為 char
屬性或欄位。 只會使用第一個 char
字串,如下列範例所示:
// .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\"");
在 .NET 5 和更新版本中,單一 char
字串以外的任何項目都會在還原序列化目標為 char
時擲回 JsonException。 下列範例字串在所有 .NET 版本中都已成功還原序列化:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
導入的版本
5.0
變更原因
只有在提供承載對目標型別有效時,還原序列化的剖析才會成功。 針對 char
類型,唯一有效的承載是單一 char
字串。
建議的動作
當您將 JSON 還原序列化為 char
目標時,請確定字串包含單一 char
。