From defd8ed253a1e47d0951d6e0abf850129f776327 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Tue, 31 Jul 2012 12:29:07 -0400 Subject: Added an ApiInteraction project that UI's can use to talk to the server. Moved jsonserializer namespace from json to serialization, since we may be adding an xml serializer. --- .../Serialization/JsonSerializer.cs | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 MediaBrowser.Common/Serialization/JsonSerializer.cs (limited to 'MediaBrowser.Common/Serialization') diff --git a/MediaBrowser.Common/Serialization/JsonSerializer.cs b/MediaBrowser.Common/Serialization/JsonSerializer.cs new file mode 100644 index 0000000000..57b285ceea --- /dev/null +++ b/MediaBrowser.Common/Serialization/JsonSerializer.cs @@ -0,0 +1,74 @@ +using System; +using System.IO; + +namespace MediaBrowser.Common.Serialization +{ + /// + /// Provides a wrapper around third party json serialization. + /// + public class JsonSerializer + { + public static void SerializeToStream(T obj, Stream stream) + { + Configure(); + + ServiceStack.Text.JsonSerializer.SerializeToStream(obj, stream); + } + + public static void SerializeToFile(T obj, string file) + { + Configure(); + + using (StreamWriter streamWriter = new StreamWriter(file)) + { + ServiceStack.Text.JsonSerializer.SerializeToWriter(obj, streamWriter); + } + } + + public static object DeserializeFromFile(Type type, string file) + { + Configure(); + + using (Stream stream = File.OpenRead(file)) + { + return ServiceStack.Text.JsonSerializer.DeserializeFromStream(type, stream); + } + } + + public static T DeserializeFromFile(string file) + { + Configure(); + + using (Stream stream = File.OpenRead(file)) + { + return ServiceStack.Text.JsonSerializer.DeserializeFromStream(stream); + } + } + + public static T DeserializeFromStream(Stream stream) + { + Configure(); + + return ServiceStack.Text.JsonSerializer.DeserializeFromStream(stream); + } + + public static T DeserializeFromString(string data) + { + Configure(); + + return ServiceStack.Text.JsonSerializer.DeserializeFromString(data); + } + + private static bool IsConfigured = false; + private static void Configure() + { + if (!IsConfigured) + { + ServiceStack.Text.JsConfig.ExcludeTypeInfo = true; + ServiceStack.Text.JsConfig.IncludeNullValues = false; + + IsConfigured = true; + } + } + } +} -- cgit v1.2.3