Sdílet prostřednictvím


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 charcí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.

Při deserializaci JSON do char cíle se ujistěte, že se řetězec skládá z jednoho char.

Ovlivněná rozhraní API