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