Skip to content

Commit c1f4b6b

Browse files
author
Oren (electricessence)
committed
Fixed parsing error for Newtonsoft.
1 parent 615b18d commit c1f4b6b

7 files changed

Lines changed: 15 additions & 5 deletions

File tree

Open.Serialization.Json.Newtonsoft/Converters/JsonDecimalRoundingConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public JsonDecimalRoundingConverter(int maximum)
1414
}
1515

1616
public override decimal ReadJson(JsonReader reader, Type objectType, decimal existingValue, bool hasExistingValue, JsonSerializer serializer)
17-
=> Math.Round(decimal.Parse((string)reader.Value), Maximum);
17+
=> Math.Round(hasExistingValue ? existingValue : (decimal)reader.Value, Maximum);
1818

1919
public override void WriteJson(JsonWriter writer, decimal value, JsonSerializer serializer)
2020
=> base.WriteJson(writer, Math.Round(value, Maximum), serializer);

Open.Serialization.Json.Newtonsoft/Converters/JsonDoubleRoundingConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public JsonDoubleRoundingConverter(int maximum)
1414
}
1515

1616
public override double ReadJson(JsonReader reader, Type objectType, double existingValue, bool hasExistingValue, JsonSerializer serializer)
17-
=> Math.Round(hasExistingValue ? existingValue : double.Parse((string)reader.Value), Maximum);
17+
=> Math.Round(hasExistingValue ? existingValue : (double)reader.Value, Maximum);
1818

1919
public override void WriteJson(JsonWriter writer, double value, JsonSerializer serializer)
2020
=> writer.WriteValue(Math.Round(value, Maximum));

Open.Serialization.Json.Newtonsoft/Converters/JsonNullableDecimalConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static readonly JsonNullableDecimalConverter Instance
1717
=> hasExistingValue ? existingValue : reader.TokenType switch
1818
{
1919
JsonToken.Null => default,
20-
JsonToken.Float => decimal.Parse((string)reader.Value),
20+
JsonToken.Float => (decimal)reader.Value,
2121
_ => throw new JsonException("Unexpected token type."),
2222
};
2323

Open.Serialization.Json.Newtonsoft/Converters/JsonNullableDoubleConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static readonly JsonNullableDoubleConverter Instance
1818
=> hasExistingValue ? existingValue : reader.TokenType switch
1919
{
2020
JsonToken.Null => default,
21-
JsonToken.Float => double.Parse((string)reader.Value),
21+
JsonToken.Float => (double)reader.Value,
2222
_ => throw new JsonException("Unexpected token type."),
2323
};
2424

Open.Serialization.Json.Newtonsoft/Open.Serialization.Json.Newtonsoft.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Part of the "Open" set of libraries.
1717
<RepositoryUrl>https://github.com/electricessence/Open.Serialization</RepositoryUrl>
1818
<RepositoryType>git</RepositoryType>
1919
<PackageTags>serialization json newtonsoft</PackageTags>
20-
<Version>1.2.2</Version>
20+
<Version>1.2.3</Version>
2121
</PropertyGroup>
2222

2323
<ItemGroup>

Open.Serialization.Tests/Newtonsoft/JsonExtensionTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ public static void ValidateJsonExtensions()
1515
.NormalizeDecimals()
1616
.RoundDoubles(2)
1717
.RoundDecimals(2);
18+
19+
var serializer = basic.GetSerializer();
20+
var json = serializer.Serialize(SampleModel.Instance);
21+
var obj = serializer.Deserialize<SampleModel>(json);
22+
Assert.NotNull(obj);
1823
}
1924
}
2025
}

Open.Serialization.Tests/System/JsonExtensionTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ public static void ValidateJsonExtensions()
2929
.NormalizeDecimals()
3030
.RoundDoubles(2)
3131
.RoundDecimals(2);
32+
33+
var serializer = basic.GetSerializer();
34+
var json = serializer.Serialize(SampleModel.Instance);
35+
var obj = serializer.Deserialize<SampleModel>(json);
36+
Assert.NotNull(obj);
3237
}
3338
}
3439
}

0 commit comments

Comments
 (0)