using Newtonsoft.Json.Linq; namespace audit_logs.Utils; public static class JsonClean { public static JObject CleanJObject(JObject obj) { var properties = obj.Properties().ToList(); foreach (var property in properties) { if (property.Value.Type == JTokenType.Null) { // Eliminar la propiedad si el valor es null property.Remove(); } else if (property.Value.Type == JTokenType.Object) { // Limpieza para objetos anidados property.Value = CleanJObject((JObject)property.Value); } else if (property.Value.Type == JTokenType.Array) { // Limpieza para arrays, aplicando limpieza a cada objeto dentro del array property.Value = CleanJArray((JArray)property.Value); } } return obj; } public static JArray CleanJArray(JArray array) { var cleanedArray = new JArray(); foreach (var item in array) { if (item.Type == JTokenType.Object) { cleanedArray.Add(CleanJObject((JObject)item)); } else if (item.Type != JTokenType.Null) { cleanedArray.Add(item); } } return cleanedArray; } }