System.Text.Json vyžaduje k deserializaci znaku řetězec s jedním znakem.
K úspěšnému Char deserializaci using System.Text.Jsonmusí řetězec JSON obsahovat jeden znak.
Změna popisu
V předchozích verzích .NET se víceřetězcovýchar
řetězec ve formátu JSON úspěšně deserializoval na char
vlastnost nebo pole. Použije se pouze první char
řetězec, jak je znázorněno v následujícím příkladu:
// .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\"");
V .NET 5 a novějších, cokoli jiné než jeden řetězecchar
způsobí JsonException , že se vyvolá, když je char
cílem deserializace . Následující příklad řetězce je úspěšně deserializován ve všech verzích .NET:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Zavedená verze
5,0
Důvod změny
Analýza deserializace by měla být úspěšná pouze v případě, že zadanou datovou část platí pro cílový typ. V případě char
typu je jedinou platnou datovou částí řetězec s jednímchar
řetězcem.
Doporučená akce
Při deserializaci JSON do char
cíle se ujistěte, že se řetězec skládá z jednoho char
.