Skip to content

Instantly share code, notes, and snippets.

@webmonger
Last active April 8, 2016 14:39
Show Gist options
  • Save webmonger/1cd8dc5a4a21db676f8cbb7d73756269 to your computer and use it in GitHub Desktop.
Save webmonger/1cd8dc5a4a21db676f8cbb7d73756269 to your computer and use it in GitHub Desktop.
NodaTimeJsonConverter for MvvmCross
Mvx.RegisterType<IMvxJsonConverter, NodaTimeJsonConverter>();
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