首页 > Windows开发 > 详细

C#序列化之Json转换遇到的坑

时间:2019-10-29 23:48:21      阅读:179      评论:0      收藏:0      [点我收藏+]

最近在写微服务,需要去调用其他微服务接口,经常涉及到对象与Json之间转换,也遇到了很多坑

一、对象类属性定义

        [JsonProperty("id")]
        [BsonElement("id")]
        public string Id { get; set; }

由于使用的是Mongo库,代码的属性定义都如上面代码所示

二、转换方式

1.MongoDB.Bson

json到对象:BsonSerializer.Deserialize()

对象到json:BsonExtensionMethods.ToJson()

遇到的坑:

1)DateTime类型

当对象中存在DateTime类型,ToJson()转成的Json是  ISODate("2019-10-29T11:17:16Z")格式,转换失败

2)int等数值类型

ToJson()转成的Json是  NumberLong(21)格式,转换失败

3)JObject

对象中字段存在JObject类型时,ToJson()大多数情况会异常

 

1.Newtonsoft.Json

son到对象:JsonConvert.DeserializeObject()

对象到json:JsonConvert.SerializeObject()

遇到的坑:

1)DateTime类型

当对象中存在DateTime类型,SerializeObject()转成的Json是  "2019-10-29 11:17:16"格式,转换异常

2)BsonDocument

由于使用Mongo库,对象中经常会使用BsonDocument作为字段类型,然而DeserializeObject()把json对应字段转化成BsonDocument时,大多数情况会异常

 

C#序列化之Json转换遇到的坑

原文:https://www.cnblogs.com/dengquan/p/11761872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!