aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Serialization/JsonSerializer.cs
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-07-31 12:29:07 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-07-31 12:29:07 -0400
commitdefd8ed253a1e47d0951d6e0abf850129f776327 (patch)
treed2ee50baeb07d38bc5d8dafa0a725cd377cf99c1 /MediaBrowser.Common/Serialization/JsonSerializer.cs
parent3058b71764bd2775fedbb7f71342b497134f6c86 (diff)
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.
Diffstat (limited to 'MediaBrowser.Common/Serialization/JsonSerializer.cs')
-rw-r--r--MediaBrowser.Common/Serialization/JsonSerializer.cs74
1 files changed, 74 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Serialization/JsonSerializer.cs b/MediaBrowser.Common/Serialization/JsonSerializer.cs
new file mode 100644
index 000000000..57b285cee
--- /dev/null
+++ b/MediaBrowser.Common/Serialization/JsonSerializer.cs
@@ -0,0 +1,74 @@
+using System;
+using System.IO;
+
+namespace MediaBrowser.Common.Serialization
+{
+ /// <summary>
+ /// Provides a wrapper around third party json serialization.
+ /// </summary>
+ public class JsonSerializer
+ {
+ public static void SerializeToStream<T>(T obj, Stream stream)
+ {
+ Configure();
+
+ ServiceStack.Text.JsonSerializer.SerializeToStream<T>(obj, stream);
+ }
+
+ public static void SerializeToFile<T>(T obj, string file)
+ {
+ Configure();
+
+ using (StreamWriter streamWriter = new StreamWriter(file))
+ {
+ ServiceStack.Text.JsonSerializer.SerializeToWriter<T>(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<T>(string file)
+ {
+ Configure();
+
+ using (Stream stream = File.OpenRead(file))
+ {
+ return ServiceStack.Text.JsonSerializer.DeserializeFromStream<T>(stream);
+ }
+ }
+
+ public static T DeserializeFromStream<T>(Stream stream)
+ {
+ Configure();
+
+ return ServiceStack.Text.JsonSerializer.DeserializeFromStream<T>(stream);
+ }
+
+ public static T DeserializeFromString<T>(string data)
+ {
+ Configure();
+
+ return ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(data);
+ }
+
+ private static bool IsConfigured = false;
+ private static void Configure()
+ {
+ if (!IsConfigured)
+ {
+ ServiceStack.Text.JsConfig.ExcludeTypeInfo = true;
+ ServiceStack.Text.JsConfig.IncludeNullValues = false;
+
+ IsConfigured = true;
+ }
+ }
+ }
+}