Skip to content

Commit 8dd6b1b

Browse files
committed
CSHARP-2305: Support strings as value for $numberInt.
1 parent 9edc93d commit 8dd6b1b

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/MongoDB.Bson/IO/JsonReader.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,6 +1559,10 @@ private BsonValue ParseNumberIntExtendedJson()
15591559
{
15601560
value = valueToken.Int32Value;
15611561
}
1562+
else if (valueToken.Type == JsonTokenType.String)
1563+
{
1564+
value = JsonConvert.ToInt32(valueToken.StringValue);
1565+
}
15621566
else
15631567
{
15641568
var message = string.Format("JSON reader expected an integer but found '{0}'.", valueToken.Lexeme);

tests/MongoDB.Bson.Tests/IO/JsonReaderTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,9 @@ public void TestInt32()
529529
[InlineData("{ $numberInt : 1 }", 1)]
530530
[InlineData("{ $numberInt : -2147483648 }", -2147483648)]
531531
[InlineData("{ $numberInt : 2147483647 }", 2147483647)]
532+
[InlineData("{ $numberInt : \"1\" }", 1)]
533+
[InlineData("{ $numberInt : \"-2147483648\" }", -2147483648)]
534+
[InlineData("{ $numberInt : \"2147483647\" }", 2147483647)]
532535
public void TestInt32ExtendedJson(string json, int expectedResult)
533536
{
534537
using (var reader = new JsonReader(json))

0 commit comments

Comments
 (0)