Last active
April 8, 2016 14:39
-
-
Save webmonger/1cd8dc5a4a21db676f8cbb7d73756269 to your computer and use it in GitHub Desktop.
NodaTimeJsonConverter for MvvmCross
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Mvx.RegisterType<IMvxJsonConverter, NodaTimeJsonConverter>(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using Newtonsoft.Json; | |
using NodaTime.Serialization.JsonNet; | |
using System.Collections.Generic; | |
using NodaTime; | |
using MvvmCross.Platform.Platform; | |
public class NodaTimeJsonConverter : IMvxJsonConverter | |
{ | |
private static readonly JsonSerializerSettings Settings; | |
static NodaTimeJsonConverter() | |
{ | |
Settings = new JsonSerializerSettings | |
{ | |
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, | |
DateFormatHandling = DateFormatHandling.IsoDateFormat, | |
PreserveReferencesHandling = PreserveReferencesHandling.Objects | |
}; | |
Settings.ConfigureForNodaTime (DateTimeZoneProviders.Tzdb); | |
} | |
public T DeserializeObject<T>(string inputText) | |
{ | |
return JsonConvert.DeserializeObject<T>(inputText, Settings); | |
} | |
public string SerializeObject(object toSerialise) | |
{ | |
return JsonConvert.SerializeObject(toSerialise, Formatting.None, Settings); | |
} | |
public object DeserializeObject(Type type, string inputText) | |
{ | |
return JsonConvert.DeserializeObject(inputText, type, Settings); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment