遭遇したピットのC#の変換JSONシリアライズ

最近のマイクロサービスを書いて、あなたは多くの場合、オブジェクトとJSONの間の遷移に関連する他のマイクロサービスインタフェースを、呼び出す必要があり、また、ピットの多くに遭遇しました

、オブジェクトクラス属性を定義します

        [JsonProperty( "ID")]
        [BsonElement( "ID")]
        公共の文字列ID {取得します。セットする; }

上記のコードに示すように、ライブラリ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

ほとんどの場合、オブジェクトフィールド、ToJson(のjオブジェクトタイプ)が非常にあるでしょう

 

1.Newtonsoft.Json

オブジェクトの息子:JsonConvert.DeserializeObject()

JSONにオブジェクト:JsonConvert.SerializeObject()

遭遇ピット:

1)のDateTimeタイプ

そこのDateTime型オブジェクトは、SerializeObject()はJSON「2019年10月29日11時17分16秒」フォーマット変換例外に変換する場合

2)BsonDocument

対応するフィールドに変換するときMongoのライブラリーの使用、オブジェクトがしばしばBsonDocumentフィールドタイプとして使用される、しかし、BsonDocumentのJSONは、ほとんどの場合DeserializeObjectに()非常になり

 

おすすめ

転載: www.cnblogs.com/dengquan/p/11761872.html