最近のマイクロサービスを書いて、あなたは多くの場合、オブジェクトと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に()非常になり