Skip to content

Commit a0d1f23

Browse files
committed
Write out NaN and Infinity primitive values as valid JSON strings
1 parent 4de9313 commit a0d1f23

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/Microsoft.OpenApi/Any/OpenApiPrimitive.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT license.
33

44
using System;
5+
using System.Globalization;
56
using System.Text;
67
using Microsoft.OpenApi.Exceptions;
78
using Microsoft.OpenApi.Properties;
@@ -74,7 +75,19 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
7475

7576
case PrimitiveType.Double:
7677
var doubleValue = (OpenApiDouble)(IOpenApiPrimitive)this;
77-
writer.WriteValue(doubleValue.Value);
78+
var actualValue = doubleValue.Value;
79+
if (actualValue.Equals(double.NaN)
80+
|| actualValue.Equals(double.NegativeInfinity)
81+
|| actualValue.Equals(double.PositiveInfinity))
82+
{
83+
// Write out NaN, -Infinity, Infinity as strings
84+
writer.WriteValue(actualValue.ToString(CultureInfo.InvariantCulture));
85+
break;
86+
}
87+
else
88+
{
89+
writer.WriteValue(actualValue);
90+
}
7891
break;
7992

8093
case PrimitiveType.String:

0 commit comments

Comments
 (0)