Share via


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

受影響的 API