|
1 | 1 | // Copyright (c) Microsoft Corporation. All rights reserved.
|
2 | 2 | // Licensed under the MIT license.
|
3 | 3 |
|
4 |
| -using System; |
5 | 4 | using System.Collections.Generic;
|
6 |
| -using System.Globalization; |
7 | 5 | using System.Text.Json;
|
8 | 6 | using System.Text.Json.Nodes;
|
9 | 7 | using Microsoft.OpenApi.Any;
|
@@ -68,13 +66,13 @@ public static void WriteAny(this IOpenApiWriter writer, JsonNode node)
|
68 | 66 | writer.WriteObject(node as JsonObject);
|
69 | 67 | break;
|
70 | 68 | case JsonValueKind.String: // Primitive
|
71 |
| - writer.WriteValue(node.GetValue<string>()); |
| 69 | + writer.WritePrimitive(node.AsValue()); |
72 | 70 | break;
|
73 | 71 | case JsonValueKind.Number: // Primitive
|
74 |
| - writer.WriteNumber(node); |
| 72 | + writer.WritePrimitive(node.AsValue()); |
75 | 73 | break;
|
76 | 74 | case JsonValueKind.True or JsonValueKind.False: // Primitive
|
77 |
| - writer.WriteValue(node.GetValue<bool>()); |
| 75 | + writer.WritePrimitive(node.AsValue()); |
78 | 76 | break;
|
79 | 77 | case JsonValueKind.Null: // null
|
80 | 78 | writer.WriteNull();
|
@@ -109,31 +107,23 @@ private static void WriteObject(this IOpenApiWriter writer, JsonObject entity)
|
109 | 107 | writer.WriteEndObject();
|
110 | 108 | }
|
111 | 109 |
|
112 |
| - private static void WriteNumber(this IOpenApiWriter writer, JsonNode number) |
| 110 | + private static void WritePrimitive(this IOpenApiWriter writer, JsonValue jsonValue) |
113 | 111 | {
|
114 |
| - if (number is JsonValue jsonValue) |
115 |
| - { |
116 |
| - if (jsonValue.TryGetValue<decimal>(out var decimalValue)) |
117 |
| - { |
118 |
| - writer.WriteValue(decimalValue); |
119 |
| - } |
120 |
| - else if (jsonValue.TryGetValue<double>(out var doubleValue)) |
121 |
| - { |
122 |
| - writer.WriteValue(doubleValue); |
123 |
| - } |
124 |
| - else if (jsonValue.TryGetValue<float>(out var floatValue)) |
125 |
| - { |
126 |
| - writer.WriteValue(floatValue); |
127 |
| - } |
128 |
| - else if (jsonValue.TryGetValue<long>(out var longValue)) |
129 |
| - { |
130 |
| - writer.WriteValue(longValue); |
131 |
| - } |
132 |
| - else if (jsonValue.TryGetValue<int>(out var intValue)) |
133 |
| - { |
134 |
| - writer.WriteValue(intValue); |
135 |
| - } |
136 |
| - } |
| 112 | + if (jsonValue.TryGetValue(out string stringValue)) |
| 113 | + writer.WriteValue(stringValue); |
| 114 | + else if (jsonValue.TryGetValue(out bool boolValue)) |
| 115 | + writer.WriteValue(boolValue); |
| 116 | + // write number values |
| 117 | + else if (jsonValue.TryGetValue(out decimal decimalValue)) |
| 118 | + writer.WriteValue(decimalValue); |
| 119 | + else if (jsonValue.TryGetValue(out double doubleValue)) |
| 120 | + writer.WriteValue(doubleValue); |
| 121 | + else if (jsonValue.TryGetValue(out float floatValue)) |
| 122 | + writer.WriteValue(floatValue); |
| 123 | + else if (jsonValue.TryGetValue(out long longValue)) |
| 124 | + writer.WriteValue(longValue); |
| 125 | + else if (jsonValue.TryGetValue(out int intValue)) |
| 126 | + writer.WriteValue(intValue); |
137 | 127 | }
|
138 | 128 | }
|
139 | 129 | }
|
0 commit comments