Microsoftが推奨するJSONシリアライザーは次のとおりです。DataContractJsonSerializer
このクラスはSystem.Runtime.Serializationアセンブリ内に存在します
このサンプルは、JSONデータからオブジェクトへの逆シリアル化を示しています。
MemoryStream stream1 = new MemoryStream();
Person p2 = (Person)ser.ReadObject(stream1);
PersonタイプのインスタンスをJSONにシリアル化するには、最初にDataContractJsonSerializerを作成し、WriteObjectメソッドを使用してJSONデータをストリームに書き込みます。
Person p = new Person();
//Set up Person object...
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
更新:ヘルパークラスを追加
単純なTo/FromJsonシリアル化に使用できるサンプルヘルパークラスを次に示します。
public static class JsonHelper
{
public static string ToJson<T>(T instance)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var tempStream = new MemoryStream())
{
serializer.WriteObject(tempStream, instance);
return Encoding.Default.GetString(tempStream.ToArray());
}
}
public static T FromJson<T>(string json)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var tempStream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
return (T)serializer.ReadObject(tempStream);
}
}
}