Files
Mapo-IOB-WIN/IOB-UT-NEXT/Services/Data/DataSerializer.cs
T
2026-05-21 18:48:17 +02:00

54 lines
1.8 KiB
C#

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