標籤:blog io re c div ar
這裡要用到如下兩個namespace:
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
定義Json實體類如下:
[DataContract]public class TextMessage{ [DataMember(Name = "content")] public string Content { get; set; }}[DataContract]public class CustomerMessage{ [DataMember(Name = "touser")] public string touser { get; set; } [DataMember(Name = "msgtype")] public string msgtype { get; set; } [DataMember(Name = "text")] public TextMessage textMsg { get; set; }}
對象序列化為Json格式如下:
CustomerMessage message = new CustomerMessage(){ touser = OpenIDBox.Text, msgtype = "text", textMsg = new TextMessage() { Content = ContentBox.Text }};DataContractJsonSerializer json = new DataContractJsonSerializer(message.GetType());string szJson = "";//序列化using (MemoryStream stream = new MemoryStream()){ json.WriteObject(stream, message); szJson = Encoding.UTF8.GetString(stream.ToArray());}Console.WriteLine(szJson);
Json格式還原序列化為對象如下:
retStr = "<Json String>";using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(retStr))){ DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(CustomerMessage)); CustomerMessage_message = (CustomerMessage)serializer.ReadObject(ms);}