/
ObjectSerializer.cs
35 lines (32 loc) · 1.06 KB
/
ObjectSerializer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
namespace LoveSeat
{
public interface IObjectSerializer
{
T Deserialize<T>(string json);
string Serialize<T>(T obj);
}
public class DefaultSerializer : IObjectSerializer
{
protected readonly JsonSerializerSettings settings;
public DefaultSerializer() {
settings = new JsonSerializerSettings();
var converters = new List<JsonConverter> { new IsoDateTimeConverter() };
settings.Converters = converters;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.NullValueHandling = NullValueHandling.Ignore;
}
public T Deserialize<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json, settings);
}
public string Serialize<T>(T obj)
{
return JsonConvert.SerializeObject(obj, Formatting.Indented, settings);
}
}
}