65 lines
2.2 KiB
C#
65 lines
2.2 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>
|
|
/// Serializza un oggetto in una stringa JSON utilizzando la cultura invariante.
|
|
/// </summary>
|
|
public static string Serialize<T>(T obj, Formatting reqFormat)
|
|
{
|
|
if (obj == null) return null;
|
|
// Utilizzo di CultureInfo.InvariantCulture per garantire la coerenza dei formati (es. decimali)
|
|
return JsonConvert.SerializeObject(obj, reqFormat);
|
|
}
|
|
|
|
|
|
/// <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;
|
|
}
|
|
}
|
|
}
|