C#使用DataContractJsonSerializer反序列化含逗号JSON报错如何解决
问题诱因
该报错和PlaceName字符串中包含的逗号无关联,核心错误是你定义的Places实体类属性类型和JSON字段类型不匹配:
- JSON里的
PlaceName是字符串类型的地名值 - 你的实体类中
PlaceName被错误定义为int类型,反序列化时序列化器尝试将字符串值强制转换为Int32类型失败,直接触发了报错。
修复方案
只需修改Places实体类中PlaceName的属性类型为string即可,修改后的实体类代码如下:
public class Places { public int PlaceId { get; set; } public string PlaceName { get; set; } }
附加优化建议:如果后续反序列化出现乱码问题,可以检查你传入的JSON编码格式,当前你的反序列化方法用的是Encoding.Unicode读取字节流,如果JSON是UTF8编码,可调整为Encoding.UTF8适配。
内容的提问来源于stack exchange,提问作者davey1971
相关产品推荐
相关产品推荐

