sql >> Databáze >  >> NoSQL >> MongoDB

Json.NET deserializující Mongo ObjectId dává nesprávný výsledek

Implementujete ReadJson nesprávná metoda převodníku. existingValue parametr vám nedává deserializovanou hodnotu načtenou z JSON, poskytuje vám stávající hodnotu objektu, který budete nahrazovat . Ve většině případů bude toto pole prázdné nebo prázdné. Co musíte udělat, je použít reader chcete-li získat hodnotu z JSON, převeďte ji podle potřeby a poté vraťte převedenou hodnotu.

Za předpokladu, že vaše ObjectId třída má konstruktor, který přijímá hex řetězec, takto byste implementovali ReadJson metoda:

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
    JToken token = JToken.Load(reader);
    return new ObjectId(token.ToObject<string>());
}



  1. Mongoid není v dotazu

  2. Připojte java projekt k databázi mongodb

  3. Jak funguje řazení s dotazy `$or` a `$in` v MongoDB?

  4. Mongoose spojí dvě kolekce a získá referenční data ve dvou vlastnostech