System.Text.Json 需要使用单字符字符串才能反序列化 char

若要使用 Char 成功反序列化 System.Text.Json,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 时,除单 JsonException 字符串以外的任何内容都会导致引发 char。 以下示例字符串在所有 .NET 版本中成功反序列化:

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

已引入的版本

5.0

更改原因

仅在提供的有效负载对目标类型有效时,反序列化分析才会成功。 对于char类型,唯一有效的有效负载是单个char字符串。

将 JSON 反序列化为 char 目标时,请确保字符串由单个 char字符串组成。

受影响的 API