delete jsonutils.cs

This commit is contained in:
Stef Heyenrath
2026-04-30 22:51:47 +02:00
parent d0f9136570
commit 9277315ef9
7 changed files with 183 additions and 122 deletions

View File

@@ -1,6 +1,8 @@
// Copyright © WireMock.Net
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using WireMock.Admin.Mappings;
using WireMock.Extensions;
using WireMock.Pact.Models.V2;
@@ -49,7 +51,7 @@ internal static class PactMapper
pact.Interactions.Add(interaction);
}
return (filename, JsonUtils.SerializeAsPactFile(pact));
return (filename, SerializeAsPactFile(pact));
}
private static PactRequest MapRequest(RequestModel request, string path)
@@ -152,7 +154,7 @@ internal static class PactMapper
/// </summary>
private static object? TryDeserializeJsonStringAsObject(string? value)
{
return value != null ? JsonUtils.TryDeserializeObject<object?>(value) ?? value : null;
return value != null ? TryDeserializeObject<object?>(value) ?? value : null;
}
//private static string GetPatternAsStringFromMatchers(MatcherModel[]? matchers, string defaultValue)
@@ -164,4 +166,22 @@ internal static class PactMapper
// return defaultValue;
//}
private static byte[] SerializeAsPactFile(object value)
{
var json = JsonConvert.SerializeObject(value, JsonSerializationConstants.JsonSerializerSettingsPact);
return Encoding.UTF8.GetBytes(json);
}
private static T? TryDeserializeObject<T>(string json)
{
try
{
return JsonConvert.DeserializeObject<T>(json);
}
catch
{
return default;
}
}
}

View File

@@ -1,7 +1,8 @@
// Copyright © WireMock.Net
using System.Linq;
using System.Diagnostics.CodeAnalysis;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NJsonSchema;
using NJsonSchema.Extensions;
using NSwag;
@@ -281,7 +282,7 @@ internal static class SwaggerMapper
if (matcher is { Name: nameof(JsonMatcher) })
{
var pattern = GetPatternAsStringFromMatcher(matcher);
if (JsonUtils.TryParseAsJObject(pattern, out var jObject))
if (TryParseAsJObject(pattern, out var jObject))
{
return jObject;
}
@@ -292,6 +293,39 @@ internal static class SwaggerMapper
return null;
}
private static bool IsJson(string? value)
{
if (string.IsNullOrWhiteSpace(value))
{
return false;
}
value = value!.Trim();
return (value.StartsWith("{") && value.EndsWith("}")) || (value.StartsWith("[") && value.EndsWith("]"));
}
private static bool TryParseAsJObject(string? strInput, [NotNullWhen(true)] out JObject? value)
{
value = null;
if (!IsJson(strInput))
{
return false;
}
try
{
// Try to convert this string into a JObject
value = JObject.Parse(strInput!);
return true;
}
catch
{
return false;
}
}
private static string GetContentType(RequestModel request)
{
var contentType = request.Headers?.FirstOrDefault(h => h.Name == "Content-Type");