diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/VersionConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/VersionConverter.cs index 3587a4ca42fa1..2b6fcfd013d29 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/VersionConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Value/VersionConverter.cs @@ -81,7 +81,7 @@ public override Version Read(ref Utf8JsonReader reader, Type typeToConvert, Json } #else string? versionString = reader.GetString(); - if (!string.IsNullOrEmpty(versionString) && !char.IsDigit(versionString[0]) && !char.IsDigit(versionString[versionString.Length - 1])) + if (!string.IsNullOrEmpty(versionString) && (!char.IsDigit(versionString[0]) || !char.IsDigit(versionString[versionString.Length - 1]))) { throw ThrowHelper.GetFormatException(DataType.Version); } diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs index dfdb28b718f8f..52b351efbebaa 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/Value.ReadTests.cs @@ -356,6 +356,7 @@ public static void Version_Read_Success(string json, string? actual = null) [InlineData("1.-1")] [InlineData(" 1.2.3.4")] //Valid but has leading whitespace [InlineData("1.2.3.4 ")] //Valid but has trailing whitespace + [InlineData(" 1.2.3.4 ")] //Valid but has trailing and leading whitespaces [InlineData("{}", false)] [InlineData("[]", false)] [InlineData("true", false)]