mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-05-03 14:14:29 +02:00
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using JsonConverter.Abstractions;
|
|
using JsonConverter.Abstractions.Models;
|
|
|
|
namespace WireMock.Serialization;
|
|
|
|
internal class MappingSerializer(IJsonConverter jsonConverter)
|
|
{
|
|
internal T[] DeserializeJsonToArray<T>(string value)
|
|
{
|
|
switch (JsonTypeHelper.GetJsonType(value))
|
|
{
|
|
case JsonType.Array:
|
|
return jsonConverter.Deserialize<T[]>(value, JsonSerializationConstants.JsonConverterOptionsWithDateParsingNone)!;
|
|
|
|
case JsonType.Object:
|
|
var singleResult = jsonConverter.Deserialize<T>(value, JsonSerializationConstants.JsonConverterOptionsWithDateParsingNone);
|
|
return [singleResult!];
|
|
|
|
default:
|
|
throw new InvalidOperationException("Cannot deserialize the provided value to an array or object.");
|
|
}
|
|
}
|
|
|
|
internal T[] DeserializeObjectToArray<T>(object value)
|
|
{
|
|
var json = jsonConverter.Serialize(value, JsonSerializationConstants.JsonConverterOptionsWithDateParsingNone);
|
|
return DeserializeJsonToArray<T>(json);
|
|
}
|
|
} |