System.Runtime.Serialization.Jsonを使用する
[DataContract]
[Serializable]
public class SuperObj
{
[DataMember]
public string Foo { get; set; }
[DataMember]
public string Bar { get; set; }
[DataMember]
public int Baz { get; set; }
[DataMember]
public DateTime Qux { get; set; }
}
を使用して文字列にシリアル化できます
var serializer = new DataContractJsonSerializer(typeof(SuperObj));
using (var stream = new MemoryStream())
{
serializer.WriteObject(stream, obj);
var jsonString = Encoding.UTF8.GetString(stream.ToArray());
Console.WriteLine(jsonString);
}
その文字列は逆シリアル化してオブジェクトに戻すことができます
var serializer = new DataContractJsonSerializer(typeof(SuperObj));
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
var obj2 = (SuperObj)serializer.ReadObject(stream);
Console.WriteLine("SuperObj");
Console.WriteLine(obj2.Foo);
Console.WriteLine(obj2.Bar);
Console.WriteLine(obj2.Baz);
Console.WriteLine(obj2.Qux);
}
他の人が言っているように、サードパーティのライブラリの方が優れている傾向があります(私はServiceStack.TextとJson.Netを使用しました)