using System; using System.Collections.Generic; using System.Globalization; using Newtonsoft.Json; namespace IOB_UT_NEXT.Services { /// /// Gestisce tutte le operazioni di serializzazione e deserializzazione dei dati. /// public static class DataSerializer { /// /// Serializza un oggetto in una stringa JSON utilizzando la cultura invariante. /// public static string Serialize(T obj) { if (obj == null) return null; // Utilizzo di CultureInfo.InvariantCulture per garantire la coerenza dei formati (es. decimali) return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { Culture = CultureInfo.InvariantCulture }); } /// /// Deserializza una stringa JSON in un oggetto del tipo specificato. /// public static T Deserialize(string json) { if (string.IsNullOrWhiteSpace(json)) return default; return JsonConvert.DeserializeObject(json, new JsonSerializerSettings { Culture = CultureInfo.InvariantCulture }); } /// /// Helper per convertire un dizionario di oggetti in un dizionario di stringhe. /// public static Dictionary ToDictionary(Dictionary input) { if (input == null) return new Dictionary(); var dict = new Dictionary(); foreach (var pair in input) { dict[pair.Key] = pair.Value?.ToString(); } return dict; } } }