42 lines
1 KiB
C#
42 lines
1 KiB
C#
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace BotSharp.Abstraction.Utilities;
|
|
|
|
public static class JsonExtensions
|
|
{
|
|
public static string FormatJson(this string? json, Formatting format = Formatting.Indented)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(json))
|
|
{
|
|
return "{}";
|
|
}
|
|
|
|
try
|
|
{
|
|
var parsedJson = JObject.Parse(json);
|
|
foreach (var item in parsedJson)
|
|
{
|
|
try
|
|
{
|
|
var key = item.Key;
|
|
var value = parsedJson[key].ToString();
|
|
var parsedValue = JObject.Parse(value);
|
|
parsedJson[key] = parsedValue;
|
|
}
|
|
catch { continue; }
|
|
}
|
|
|
|
var jsonSettings = new JsonSerializerSettings
|
|
{
|
|
Formatting = format
|
|
};
|
|
return JsonConvert.SerializeObject(parsedJson, jsonSettings);
|
|
}
|
|
catch
|
|
{
|
|
return json;
|
|
}
|
|
}
|
|
}
|