BotSharp/src/Infrastructure/BotSharp.Abstraction/Utilities/JsonExtensions.cs
Jicheng Lu bc76a49f52 refine json format
refine file select prompt
2024-07-24 17:54:49 -05:00

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;
}
}
}