.NET:序列化和反序列化
需要反序列化的字符串:
{ "LouPanID": "sample string 1", "LouPanHao": "sample string 2", "ChengShi": "sample string 3", "LouPanMing": "sample string 4", "LianXiRenMing": "sample string 5", "LianXiRenDianHua": "sample string 6", "ShouLouDiZhi": "sample string 7", "WuYeLeiXing": "sample string 8", "WuYeDiZhi": "sample string 9", "ShiFouDaiLi": "sample string 10", "DaiLiGongSi": "sample string 11", "ShiFouYouYuShou": "sample string 12", "ShiFouMianLiuShui": "sample string 13", "YuShouZhengHao": "sample string 14", "SuoShuQuYu": "sample string 15" }
类结构:
public class BuildingInfo { public string LouPanID { get; set; } public string LouPanHao { get; set; } public string ChengShi { get; set; } public string LouPanMing { get; set; } public string LianXiRenMing { get; set; } public string LianXiRenDianHua { get; set; } public string ShouLouDiZhi { get; set; } public string WuYeLeiXing { get; set; } public string WuYeDiZhi { get; set; } public string ShiFouDaiLi { get; set; } public string DaiLiGongSi { get; set; } public string ShiFouYouYuShou { get; set; } public string ShiFouMianLiuShui { get; set; } public string YuShouZhengHao { get; set; } public string SuoShuQuYu { get; set; } }
使用System.Runtime.Serialization.Json.DataContractJsonSerializer序列化/反序列化
class Program { static void Main(string[] args) { //反序列化 string jsonBody = @"{ ""LouPanID"": ""sample string 1"", ""LouPanHao"": ""sample string 2"", ""ChengShi"": ""sample string 3"", ""LouPanMing"": ""sample string 4"", ""LianXiRenMing"": ""sample string 5"", ""LianXiRenDianHua"": ""sample string 6"", ""ShouLouDiZhi"": ""sample string 7"", ""WuYeLeiXing"": ""sample string 8"", ""WuYeDiZhi"": ""sample string 9"", ""ShiFouDaiLi"": ""sample string 10"", ""DaiLiGongSi"": ""sample string 11"", ""ShiFouYouYuShou"": ""sample string 12"", ""ShiFouMianLiuShui"": ""sample string 13"", ""YuShouZhengHao"": ""sample string 14"", ""SuoShuQuYu"": ""sample string 15"" }"; BuildingInfo bi = new BuildingInfo(); DataContractJsonSerializer JsonSerializer = new DataContractJsonSerializer(typeof(BuildingInfo)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonBody)); bi = (BuildingInfo)JsonSerializer.ReadObject(ms); //序列化 DataContractJsonSerializer _jsonSerializer = new DataContractJsonSerializer(typeof(BuildingInfo)); MemoryStream _ms = new MemoryStream(); _jsonSerializer.WriteObject(_ms, bi); string _jsonBody = Encoding.UTF8.GetString(_ms.ToArray()); _ms.Close(); } } [DataContract] class BuildingInfo { [DataMember] public string LouPanID { get; set; } [DataMember] public string LouPanHao { get; set; } [DataMember] public string ChengShi { get; set; } [DataMember] public string LouPanMing { get; set; } [DataMember] public string LianXiRenMing { get; set; } [DataMember] public string LianXiRenDianHua { get; set; } [DataMember] public string ShouLouDiZhi { get; set; } [DataMember] public string WuYeLeiXing { get; set; } [DataMember] public string WuYeDiZhi { get; set; } [DataMember] public string ShiFouDaiLi { get; set; } [DataMember] public string DaiLiGongSi { get; set; } [DataMember] public string ShiFouYouYuShou { get; set; } [DataMember] public string ShiFouMianLiuShui { get; set; } [DataMember] public string YuShouZhengHao { get; set; } [DataMember] public string SuoShuQuYu { get; set; } }
如果序列化和反序列化的是一个集合,将bi的类型改为List<BuildingInfo>接口

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.Text; namespace Topsur.Test.Serialize { class Program { static void Main(string[] args) { //反序列化 #region jsonBody string jsonBody = @"[ { ""LouPanID"": ""1"", ""LouPanHao"": ""sample string 2"", ""ChengShi"": ""sample string 3"", ""LouPanMing"": ""sample string 4"", ""LianXiRenMing"": ""sample string 5"", ""LianXiRenDianHua"": ""sample string 6"", ""ShouLouDiZhi"": ""sample string 7"", ""WuYeLeiXing"": ""sample string 8"", ""WuYeDiZhi"": ""sample string 9"", ""ShiFouDaiLi"": ""sample string 10"", ""DaiLiGongSi"": ""sample string 11"", ""ShiFouYouYuShou"": ""sample string 12"", ""ShiFouMianLiuShui"": ""sample string 13"", ""YuShouZhengHao"": ""sample string 14"", ""SuoShuQuYu"": ""sample string 15"" }, { ""LouPanID"": ""2"", ""LouPanHao"": ""sample string 2"", ""ChengShi"": ""sample string 3"", ""LouPanMing"": ""sample string 4"", ""LianXiRenMing"": ""sample string 5"", ""LianXiRenDianHua"": ""sample string 6"", ""ShouLouDiZhi"": ""sample string 7"", ""WuYeLeiXing"": ""sample string 8"", ""WuYeDiZhi"": ""sample string 9"", ""ShiFouDaiLi"": ""sample string 10"", ""DaiLiGongSi"": ""sample string 11"", ""ShiFouYouYuShou"": ""sample string 12"", ""ShiFouMianLiuShui"": ""sample string 13"", ""YuShouZhengHao"": ""sample string 14"", ""SuoShuQuYu"": ""sample string 15"" }, { ""LouPanID"": ""3"", ""LouPanHao"": ""sample string 2"", ""ChengShi"": ""sample string 3"", ""LouPanMing"": ""sample string 4"", ""LianXiRenMing"": ""sample string 5"", ""LianXiRenDianHua"": ""sample string 6"", ""ShouLouDiZhi"": ""sample string 7"", ""WuYeLeiXing"": ""sample string 8"", ""WuYeDiZhi"": ""sample string 9"", ""ShiFouDaiLi"": ""sample string 10"", ""DaiLiGongSi"": ""sample string 11"", ""ShiFouYouYuShou"": ""sample string 12"", ""ShiFouMianLiuShui"": ""sample string 13"", ""YuShouZhengHao"": ""sample string 14"", ""SuoShuQuYu"": ""sample string 15"" } ]"; #endregion List<BuildingInfo> bi = new List<BuildingInfo>(); DataContractJsonSerializer JsonSerializer = new DataContractJsonSerializer(typeof(List<BuildingInfo>)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonBody)); bi = (List<BuildingInfo>)JsonSerializer.ReadObject(ms); //序列化 DataContractJsonSerializer _jsonSerializer = new DataContractJsonSerializer(typeof(List<BuildingInfo>)); MemoryStream _ms = new MemoryStream(); _jsonSerializer.WriteObject(_ms, bi); string _jsonBody = Encoding.UTF8.GetString(_ms.ToArray()); _ms.Close(); } } [DataContract] class BuildingInfo { [DataMember] public string LouPanID { get; set; } [DataMember] public string LouPanHao { get; set; } [DataMember] public string ChengShi { get; set; } [DataMember] public string LouPanMing { get; set; } [DataMember] public string LianXiRenMing { get; set; } [DataMember] public string LianXiRenDianHua { get; set; } [DataMember] public string ShouLouDiZhi { get; set; } [DataMember] public string WuYeLeiXing { get; set; } [DataMember] public string WuYeDiZhi { get; set; } [DataMember] public string ShiFouDaiLi { get; set; } [DataMember] public string DaiLiGongSi { get; set; } [DataMember] public string ShiFouYouYuShou { get; set; } [DataMember] public string ShiFouMianLiuShui { get; set; } [DataMember] public string YuShouZhengHao { get; set; } [DataMember] public string SuoShuQuYu { get; set; } } }
可以封装成类
public class JsonSerializeHelper { public static string Serialize<T>(T t) { DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); jsonSerializer.WriteObject(ms, t); string jsonResult = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonResult; } public static T Deserialize<T>(string jsonBody) { DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonBody)); T objResult=(T)jsonSerializer.ReadObject(ms); ms.Close(); return objResult; } }