在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
上一篇中有Json序列化相关问题得到了解决。 那么结果集为Json串时,如何将Json串转成C#对象呢? 现举例说明: -现有如下字符串数据 string k = "{\"rings\":[" +"[[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]," + "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]," + "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]]]," + "\"spatialReference\":"; -想将上面的数据转换成List<point> public class point { public decimal x { get; set; } public decimal y { get; set; } }
步骤1: -截取字符串 public string strCutOut(string str) { string str1 = str.Substring(str.IndexOf(":[[") + 3, str.IndexOf("]],") - 11); string str2 = str1.Replace("],[", "]$["); string str3 = str2.Replace("[", "{'x':"); string str4 = str3.Replace("]", "}"); string str5 = str4.Replace(",", ",'y':"); string str6 = str5.Replace("$", ","); string str7 = str6.Replace("'", "\""); return str7; } -得到如下字符串 "{\"x\":34995.513100000098,\"y\":4304381.4231000002}, {\"x\":34988.120099999942,\"y\":4304371.5420999993}, {\"x\":34995.513100000098,\"y\":4304381.4231000002}, {\"x\":34988.120099999942,\"y\":4304371.5420999993}, {\"x\":34995.513100000098,\"y\":4304381.4231000002}, {\"x\":34988.120099999942,\"y\":4304371.5420999993}"
步骤2: -引用System.Runtime.Serialization.Json; -反序列化字符串 public List<point> convertObject(string json) { MemoryStream stream2 = new MemoryStream(); DataContractJsonSerializer ser2 = new DataContractJsonSerializer(typeof(List<point>)); StreamWriter wr = new StreamWriter(stream2); wr.Write(json); wr.Flush(); stream2.Position = 0; Object obj = ser2.ReadObject(stream2); List<point> list = (List<point>)obj; return list; }
步骤3: -调用字符串截取及反序列化字符串 public void readJson(){ string k = "{\"rings\":[" +"[[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]," + "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]," + "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]]]," + "\"spatialReference\":"; string str = strCutOut(k); string json = "[" + str + "]"; List<point> ls = convertObject(json); }
*得到的结果集ls为: |
请发表评论