C#序列化之Json轉換遇到的坑


最近在寫微服務,需要去調用其他微服務接口,經常涉及到對象與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時,大多數情況會異常

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM