这里要用到如下两个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);
}