|
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