JSON Serialization on Windows Phone 7
I started toying around with creating a HackerNews app for Windows Phone 7 and quickly found out that System.Web.Script.Serialization.JavaScriptSerializer() isn't available on the platform. Here's how I'm handling it -- make sure you add a reference to System.ServiceModel.Web.
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
namespace Serialization
{
public static class Json
{
public static string Serialize(T obj)
{
using (var ms = new MemoryStream())
{
var serializer = new DataContractJsonSerializer(typeof(T));
serializer.WriteObject(ms, obj);
var json = ms.ToArray();
return Encoding.UTF8.GetString(json, 0, json.Length);
}
}
public static T Deserialize(string json)
{
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
}
}