diff --git a/src/Infrastructure/BotSharp.Abstraction/Utilities/StringExtensions.cs b/src/Infrastructure/BotSharp.Abstraction/Utilities/StringExtensions.cs index 3b9c0a0f..a7ffe5af 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Utilities/StringExtensions.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Utilities/StringExtensions.cs @@ -62,4 +62,25 @@ public static class StringExtensions return JsonSerializer.Deserialize(text, options); } + + public static string JsonArrayContent(this string text) + { + var m = Regex.Match(text, @"\[(.|\n|\r)*\]"); + return m.Success ? m.Value : "[]"; + } + + public static T[]? JsonArrayContent(this string text) + { + text = JsonArrayContent(text); + + var options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true, + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + WriteIndented = true, + AllowTrailingCommas = true + }; + + return JsonSerializer.Deserialize(text, options); + } }