上面是要反序列化的字符串
下面是反序列化的类
public class Freight { public int FID { get; set; } public string FName { get; set; } public int FProvince { get; set; } public string FProvinceName { get; set; } public int FCity { get; set; } public string FCityName { get; set; } public int FArea { get; set; } public string FAreaName { get; set; } public int FIsPostage { get; set; } public int FValuation { get; set; } public int FSendType { get; set; } public int FDefaultNumber { get; set; } public decimal FDefaultMoney { get; set; } public int FDefaultAddNumber { get; set; } public decimal FDefaultAddMoney { get; set; } public IList<Model.Freight_List> Freight_List { get; set; } } public class Freight_List { public int FID { get; set; } public string FLName { get; set; } public string FLCityID { get; set; } public string FLProvinceID { get; set; } public int FLFirstNumber { get; set; } public decimal FLFirstMoney { get; set; } public int FLAddNumber { get; set; } public decimal FLAddMoney { get; set; } }
下面是反序列化的代码
string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312")); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Freight)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(str)); Freight obj = ser.ReadObject(ms) as Freight; Console.WriteLine(obj.FName); Console.ReadLine();
这里是我要问的问题:反序列化的时候会出现错误:反序列化对象 属于类型 Freight 时出现错误。需要标记“\"”,但找到“é”。求高手给解决下。
字符串忘记贴了 {"FName":"通用模板","FProvince":"210000","FProvinceName":"辽宁省","FCity":"210200","FCityName":"大连市","FArea":"210203","FAreaName":"西岗区","FIsPostage":"0","FValuation":"1","FSendType":"1","FDefaultNumber":"1","FDefaultMoney":"1","FDefaultAddNumber":"1","FDefaultAddMoney":"1","Freight_List":[{"FLName":"大连 , 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州, 鞍山 沈阳 , 锦州","FLCityID":"210200,210300,210400,210100,210700,210800,210900,210500,210600,211300,211200,211100,211000,211400,420500,420600,420700,420800,420100,420200,420300,420900,421100,421000,421200,421300,422800,429005,429004,429006,429021,140800,140900,141000,141100,140300,140400,140500,140600,140700,140100,140200,350800,350900,350500,350700,350600,350300,350400,350100,350200,630100,632200,632300,632100,632800,632600,632700,632500,360300,360400,360100,361000,361100,360800,360900,360500,360700,360600,360200,410100,410300,410200,410600,410500,410800,410700,411100,410900,410881,411000,411300,411600,411400,411500,411700,410400,411200,330400,330300,330700,330600,330500,330200,330100,330900,331000,330800,331100,220100,220700,220800,220500,220600,220200,220400,220300,222400,340300,340400,340100,340200,340800,340600,340700,341300,341500,341100,341000,341200,341800,341600,341700,340500,712800,710800,710900,710700,711100,711300,711400,711200,711500,711900,711700,712100,712400,712700,712600,712500,710100,710200,710300,710500,710400,710600,469031,469030,469028,469027,469026,469025,469039,469038,469037,469036,469035,469034,469033,469005,469007,469006,469003,469002,460300,460100,460200,469001,530400,530300,530100,530700,530800,530900,530500,530600,532300,533100,533400,533300,532600,532500,532900,532800,520400,520300,522200,522400,522700,520100,520200,522300,522600,321300,321200,321100,321000,320900,320800,320600,320400,320500,320300,320200,320100,320700,110100,512000,513200,513300,513400,510800,510900,510500,510700,510600,510300,510100,511800,511900,511500,511600,511700,511300,511400,511000,511100,510400,231200,231100,230700,230400,230600,230300,231000,230900,230800,230500,230100,232700,230200,610300,610200,610100,610900,611000,610600,610700,610800,610400,610500,120100,445300,445200,445100,440100,440300,440200,442101,442000,441900,441500,441400,441800,441700,441600,440900,441300,441200,440500,440400,440800,440600,440700,500100,131100,130200,130400,130500,130600,130800,130900,131000,130100,130300,130700,431200,431300,430200,430100,430300,430400,430500,430700,430600,430900,431100,431000,433100,430800,623000,622900,620300,620400,620500,620100,621000,620900,620800,620700,620600,621200,621100,620200,370100,370500,370600,370300,370200,370400,371100,371000,370900,370700,370800,371600,371700,371500,371400,371200,371300,310100,540100,542200,542100,542400,542500,542600,542300,150200,150300,150400,150500,152200,152900,150100,150600,150700,150900,150800,152500,451400,451200,451300,451100,451000,450900,450700,450800,450100,450200,450300,450400,450500,450600,820200,820100,810300,810200,810100,640300,640500,640400,640100,640200,654000,654200,652300,653100,653200,652200,659004,659001,659002,652100,652900,654300,650200,650100,652700,652800,659003,653000,990100","FLProvinceID":"210000,420000,140000,350000,630000,360000,410000,330000,220000,340000,710000,460000,530000,520000,320000,110000,510000,230000,610000,120000,440000,500000,130000,430000,620000,370000,310000,540000,150000,450000,820000,810000,640000,650000,990000","FLFirstNumber":"2","FLFirstMoney":"2","FLAddNumber":"2","FLAddMoney":"2"}]}
你用 DataContractJsonSerializer 把一个 Freight 对象序列化成字符串,然后贴出来。
谢谢高手的回答,序列化成字符串就是我上面贴的那个字符串。我做的是一个运费模板设置,当把所有城市都选中,然后提交到后台要反序列化成对象的时候就会报需要标记“\"”,但找到“é”。求高手给解决下。
而只提交一部分城市的时候是可以正常序列化的。
上面的那个字符串我是把所有城市都提交后的字符串!
@蓝丶 sky: 你贴的那个字符串是通过下面的代码生成的吗?
Freight f = new Freight;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Freight));
MemoryStream ms = new MemoryStream;
ser.WriteObject(ms,f);
ms.SeekToBegin;
string str = UTF8.GetString(ms.GetBuffer);
@Launcher: 那个是自己拼接的,是前台js拼接然后提交给后台要反序列化成对象Freight。
我通过代码生成的话,有全国各个城市,但是不知道是不是城市名称的问题,我要在博客园回复的时候提示:评论中含有不当词汇
@Launcher: 我要做的效果是这样的,如下图。
@Launcher: 当我只是选中少量城市的时候,提交到后台反序列化成对象Freight是可以的。
但是当各个城市全部选中的话就会报错:需要标记“\"”,但找到“é”。求高手给解决下。
个人觉得好像是json反序列化的时候长度过长的样子。
@蓝丶 sky: 这是我的第一个回复:
你用 DataContractJsonSerializer 把一个 Freight 对象序列化成字符串,然后贴出来。
然后你告诉我:
序列化成字符串就是我上面贴的那个字符串
然后我就怀疑你没认真读我的回复,所以我再次追问:
你贴的那个字符串是通过下面的代码生成的吗?
然后你回复到:
那个是自己拼接的,是前台js拼接然后提交给后台要反序列化成对象Freight
那么现在问题明了了,所以请你再看我的第一个回复,如果你不愿意这么做,那我就没法回答了。
@Launcher: 好的,那我现在在数据库中插入一条,然后序列化成字符串一下!因为现在数据库中插入不了,所以序列化不了字符串。我现在手动输入一条数据。
序列化的代码
Freight f = new Freight(); f.FName = "通用运费模板"; f.FProvince = 210000; f.FProvinceName = "辽宁省"; f.FCity = 210300; f.FCityName = "鞍山市"; f.FArea = 210302; f.FAreaName = "铁东区"; f.FIsPostage = 0; f.FValuation = 1; f.FSendType = 1; f.FDefaultNumber = 1; f.FDefaultMoney = 1; f.FDefaultAddNumber = 1; f.FDefaultAddMoney = 1; f.Freight_List = new List<Freight_List> { new Freight_List(){ FLName = "大连 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 ", FLCityID = "210200,210300,210400,210100,210700,210800,210900,210500,210600,211300,211200,211100,211000,211400,420500,420600,420700,420800,420100,420200,420300,420900,421100,421000,421200,421300,422800,429005,429004,429006,429021,140800,140900,141000,141100,140300,140400,140500,140600,140700,140100,140200,350800,350900,350500,350700,350600,350300,350400,350100,350200,630100,632200,632300,632100,632800,632600,632700,632500,360300,360400,360100,361000,361100,360800,360900,360500,360700,360600,360200,410100,410300,410200,410600,410500,410800,410700,411100,410900,410881,411000,411300,411600,411400,411500,411700,410400,411200,330400,330300,330700,330600,330500,330200,330100,330900,331000,330800,331100,220100,220700,220800,220500,220600,220200,220400,220300,222400,340300,340400,340100,340200,340800,340600,340700,341300,341500,341100,341000,341200,341800,341600,341700,340500,712800,710800,710900,710700,711100,711300,711400,711200,711500,711900,711700,712100,712400,712700,712600,712500,710100,710200,710300,710500,710400,710600,469031,469030,469028,469027,469026,469025,469039,469038,469037,469036,469035,469034,469033,469005,469007,469006,469003,469002,460300,460100,460200,469001,530400,530300,530100,530700,530800,530900,530500,530600,532300,533100,533400,533300,532600,532500,532900,532800,520400,520300,522200,522400,522700,520100,520200,522300,522600,321300,321200,321100,321000,320900,320800,320600,320400,320500,320300,320200,320100,320700,110100,512000,513200,513300,513400,510800,510900,510500,510700,510600,510300,510100,511800,511900,511500,511600,511700,511300,511400,511000,511100,510400,231200,231100,230700,230400,230600,230300,231000,230900,230800,230500,230100,232700,230200,610300,610200,610100,610900,611000,610600,610700,610800,610400,610500,120100,445300,445200,445100,440100,440300,440200,442101,442000,441900,441500,441400,441800,441700,441600,440900,441300,441200,440500,440400,440800,440600,440700,500100,131100,130200,130400,130500,130600,130800,130900,131000,130100,130300,130700,431200,431300,430200,430100,430300,430400,430500,430700,430600,430900,431100,431000,433100,430800,623000,622900,620300,620400,620500,620100,621000,620900,620800,620700,620600,621200,621100,620200,370100,370500,370600,370300,370200,370400,371100,371000,370900,370700,370800,371600,371700,371500,371400,371200,371300,310100,540100,542200,542100,542400,542500,542600,542300,150200,150300,150400,150500,152200,152900,150100,150600,150700,150900,150800,152500,451400,451200,451300,451100,451000,450900,450700,450800,450100,450200,450300,450400,450500,450600,820200,820100,810300,810200,810100,654000,654200,652300,653100,653200,652200,659004,659001,659002,652100,652900,654300,650200,650100,652700,652800,659003,653000,990100", FLProvinceID="210000,420000,140000,350000,630000,360000,410000,330000,220000,340000,710000,460000,530000,520000,320000,110000,510000,230000,610000,120000,440000,500000,130000,430000,620000,370000,310000,540000,150000,450000,820000,810000,650000,990000", FLFirstNumber=2, FLFirstMoney=2, FLAddNumber=2, FLAddMoney=2 } }; DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Freight)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, f); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); Console.WriteLine(jsonString);
序列化后的字符串
/* {"FArea":210302,"FAreaName":"铁东区","FCity":210300,"FCityName":"鞍山市","FDefau ltAddMoney":1,"FDefaultAddNumber":1,"FDefaultMoney":1,"FDefaultNumber":1,"FID":0 ,"FIsPostage":0,"FName":"通用运费模板","FProvince":210000,"FProvinceName":"辽宁 省","FSendType":1,"FValuation":1,"Freight_List":[{"FLAddMoney":2,"FLAddNumber":2 ,"FLCityID":"210200,210300,210400,210100,210700,210800,210900,210500,210600,2113 00,211200,211100,211000,211400,420500,420600,420700,420800,420100,420200,420300, 420900,421100,421000,421200,421300,422800,429005,429004,429006,429021,140800,140 900,141000,141100,140300,140400,140500,140600,140700,140100,140200,350800,350900 ,350500,350700,350600,350300,350400,350100,350200,630100,632200,632300,632100,63 2800,632600,632700,632500,360300,360400,360100,361000,361100,360800,360900,36050 0,360700,360600,360200,410100,410300,410200,410600,410500,410800,410700,411100,4 10900,410881,411000,411300,411600,411400,411500,411700,410400,411200,330400,3303 00,330700,330600,330500,330200,330100,330900,331000,330800,331100,220100,220700, 220800,220500,220600,220200,220400,220300,222400,340300,340400,340100,340200,340 800,340600,340700,341300,341500,341100,341000,341200,341800,341600,341700,340500 ,712800,710800,710900,710700,711100,711300,711400,711200,711500,711900,711700,71 2100,712400,712700,712600,712500,710100,710200,710300,710500,710400,710600,46903 1,469030,469028,469027,469026,469025,469039,469038,469037,469036,469035,469034,4 69033,469005,469007,469006,469003,469002,460300,460100,460200,469001,530400,5303 00,530100,530700,530800,530900,530500,530600,532300,533100,533400,533300,532600, 532500,532900,532800,520400,520300,522200,522400,522700,520100,520200,522300,522 600,321300,321200,321100,321000,320900,320800,320600,320400,320500,320300,320200 ,320100,320700,110100,512000,513200,513300,513400,510800,510900,510500,510700,51 0600,510300,510100,511800,511900,511500,511600,511700,511300,511400,511000,51110 0,510400,231200,231100,230700,230400,230600,230300,231000,230900,230800,230500,2 30100,232700,230200,610300,610200,610100,610900,611000,610600,610700,610800,6104 00,610500,120100,445300,445200,445100,440100,440300,440200,442101,442000,441900, 441500,441400,441800,441700,441600,440900,441300,441200,440500,440400,440800,440 600,440700,500100,131100,130200,130400,130500,130600,130800,130900,131000,130100 ,130300,130700,431200,431300,430200,430100,430300,430400,430500,430700,430600,43 0900,431100,431000,433100,430800,623000,622900,620300,620400,620500,620100,62100 0,620900,620800,620700,620600,621200,621100,620200,370100,370500,370600,370300,3 70200,370400,371100,371000,370900,370700,370800,371600,371700,371500,371400,3712 00,371300,310100,540100,542200,542100,542400,542500,542600,542300,150200,150300, 150400,150500,152200,152900,150100,150600,150700,150900,150800,152500,451400,451 200,451300,451100,451000,450900,450700,450800,450100,450200,450300,450400,450500 ,450600,820200,820100,810300,810200,810100,654000,654200,652300,653100,653200,65 2200,659004,659001,659002,652100,652900,654300,650200,650100,652700,652800,65900 3,653000,990100","FLFirstMoney":2,"FLFirstNumber":2,"FLName":"大连 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈 阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦 州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营 口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜 新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本 溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹 东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝 阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁 岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘 锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍 山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚 顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 , 鞍山 , 抚顺 , 沈阳 , 锦州 , 营口 , 阜新 , 本溪 , 丹东 , 朝阳 , 铁岭 , 盘锦 ","FLProvinceID":"2 10000,420000,140000,350000,630000,360000,410000,330000,220000,340000,710000,4600 00,530000,520000,320000,110000,510000,230000,610000,120000,440000,500000,130000, 430000,620000,370000,310000,540000,150000,450000,820000,810000,650000,990000"}]} */
@Launcher: 由于各个城市的名称,博客园好像有禁止了哪些字符,所以每次要贴的时候就提示有不当词汇,所以这里的城市名称我就先复制同样的名称,然后粘帖到长度大小和各个城市的字符串的长度大小一致。
@蓝丶 sky: 同你拼接的字符串对比下,我粗略了看了下,至少这里就是不同的:
"FProvince":210000 // 使用 DataContractJsonSerializer 序列化的结果
"FProvince":"210000" // 你拼接的结果
看一下 FProvince 的数据类型,是 int,在 JSON 规范中,数值类型不需要 "",http://json.org/。
@Launcher: 好的,谢谢高手,我重新测试一下看看!有问题我在问你下哦!
@Launcher: 好像也不行哦,我直接用DataContractJsonSerializer序列化后的字符串,直接反序列化成对象,也是报错哦,麻烦Launcher再帮我看看哦,自己捣鼓了两天了还是没找到原因。
@蓝丶 sky:
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Freight));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, f);
ms.SeekToBegin.
var f2 = ser.ReadObject(ms);
@Launcher: Launcher大师,好像也还是不行哦!
@Launcher: 高手还在吗??
@蓝丶 sky:
@Launcher: 高手你的Freight_List中的FLName属性值长度是不是比较短的呢?
可以麻烦你把FLName和FLCity设置得长一点测试下吗?
当FLName和FLCity长度不是那么长的时候,我这边也是可以正常的反序列化,但是当字符串长度一长就出现了我上面的那种错误!
@蓝丶 sky:
@蓝丶 sky: 把你的中文字符改成数字或字母试试。
@Launcher: 额,奇怪哦,我怎么就是不行,不然只能用JavaScriptSerializer了
@Launcher: 好的,我改成数字或字母试试!
@蓝丶 sky: 你的 DataContractJsonSerializer 在哪个程序集中?你的 .Net Framework 的版本是多少?
@Launcher: 高手,我要蛋疼了,改成字符串就可以。我是3.5版本的,引用的是using System.Runtime.Serialization.Json这个命名空间!
@蓝丶 sky: 先吃饭。
@Launcher: 好的,谢谢Launcher,麻烦了你一上午了!非常感谢!
@蓝丶 sky: 在 3.5 中,System.Runtime.Serialization.Json 应该是在 System.ServiceModel.Web.dll 中,4.0/4.5 时在 System.Runtime.Serialization.dll 中。我测试了下,没有问题。你可以在你的项目的引用中找到 System.Runtime.Serialization.dll,并把它删除掉。
一般json的用法是在一处存,在另一外取,不存在拼接的情况。如果要这么搞还是建议用xml,固定好结构,也比较好查。
就是太长了.我遇到过.截断那个最长的就可以了