using Newtonsoft.Json.Linq; namespace audit_logs.Utils; using System.Text.Json; public static class JsonConverter { /// /// Converts an object to a JSON string. /// /// the object to be converted /// A JSON string representing the object public static string ConvertObjectToJson(object obj) { try { // Si el objeto es una cadena, asumimos que ya es JSON if (obj is string jsonString && IsValidJson(jsonString)) { return jsonString; // No volver a serializar } var options = new JsonSerializerOptions { WriteIndented = true, Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; var json = JsonSerializer.Serialize(obj); return json; } catch (Exception ex) { return $"Error converting object to JSON: {ex.Message}"; } } /// /// Valida si una cadena es un JSON vĂ¡lido. /// private static bool IsValidJson(string jsonString) { try { JToken.Parse(jsonString); return true; } catch { return false; } } }