Skip to content

Commit 67d6e29

Browse files
author
Oren (electricessence)
committed
Catch integer edge case.
1 parent 40ac438 commit 67d6e29

4 files changed

Lines changed: 31 additions & 5 deletions

File tree

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public static readonly JsonNullableDecimalConverter Instance
1717
=> reader.TokenType switch
1818
{
1919
JsonToken.Null => default,
20-
JsonToken.Float => Convert.ToDecimal(reader.Value),
21-
_ => throw new JsonException($"Unexpected token type: {reader.TokenType}, Actual: {reader.Value.GetType()}")
20+
JsonToken.Undefined => default,
21+
_ => Convert.ToDecimal(reader.Value),
2222
};
2323

2424
public override void WriteJson(JsonWriter writer, decimal? value, JsonSerializer serializer)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public static readonly JsonNullableDoubleConverter Instance
1818
=> reader.TokenType switch
1919
{
2020
JsonToken.Null => default,
21-
JsonToken.Float => Convert.ToDouble(reader.Value),
22-
_ => throw new JsonException($"Unexpected token type: {reader.TokenType}, Actual: {reader.Value.GetType()}")
21+
JsonToken.Undefined => default,
22+
_ => Convert.ToDouble(reader.Value)
2323
};
2424

2525
public override void WriteJson(JsonWriter writer, double? value, JsonSerializer serializer)

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.5</Version>
20+
<Version>1.2.7</Version>
2121
</PropertyGroup>
2222

2323
<ItemGroup>

Open.Serialization.Tests/Newtonsoft/JsonExtensionTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,32 @@ public static void ValidateDecimals()
105105
}
106106
}
107107

108+
{
109+
var serializer = CamelCaseJson
110+
.Default()
111+
.GetSerializer();
112+
113+
var sample3 = 1;
114+
115+
{
116+
var model = new SampleModel
117+
{
118+
DecimalValue1 = sample3
119+
};
120+
var json = serializer.Serialize(model);
121+
Assert.Equal(sample3, serializer.Deserialize<SampleModel>(json).DecimalValue1);
122+
}
123+
124+
{
125+
var model = new SampleModel
126+
{
127+
NullableDecimalValue = sample3
128+
};
129+
var json = serializer.Serialize(model);
130+
Assert.Equal(sample3, serializer.Deserialize<SampleModel>(json).NullableDecimalValue);
131+
}
132+
}
133+
108134
}
109135

110136
}

0 commit comments

Comments
 (0)