Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill deserialisera en Char med System.Text.Json måste JSON-strängen innehålla ett enda tecken.
Ändra beskrivning
I tidigare versioner av .NET deserialiseras en sträng med flera värden i JSON på ett framgångsrikt sätt till en egenskap eller ett fält. Endast den första char av strängen används, som i följande exempel:
// .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\"");
I .NET 5 och senare orsakar allt annat än en enskildchar sträng att en JsonException genereras när deserialiseringsmålet är ett char. Följande exempelsträng deserialiseras i alla .NET-versioner:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Version lanserad
5,0
Orsak till ändring
Parsning för deserialisering bör endast lyckas när den angivna nyttolasten är giltig för måltypen. För typen char är den enda giltiga nyttolasten en enda char sträng.
Rekommenderad åtgärd
När du deserialiserar JSON till ett char mål kontrollerar du att strängen består av en enda char.