MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Json.NET десериализиране на Mongo ObjectId дава грешен резултат

Вие внедрявате ReadJson метод на конвертора неправилно. existingValue параметърът не ви дава десериализираната стойност, прочетена от JSON, той ви дава съществуващата стойност на обекта, който ще замените . В повечето случаи това ще бъде нула или празно. Това, което трябва да направите, е да използвате reader за да получите стойността от JSON, конвертирайте я според нуждите, след което върнете конвертираната стойност.

Приемаме вашия ObjectId има конструктор, който приема шестнадесетичен низ, ето как бихте имплементирали ReadJson метод:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb с FastAPI

  2. Каква е разликата между mongoose и mongoJS? Кое да използвам?

  3. Как мога да изчисля положителна и отрицателна цена с помощта на mongodb или robomongo?

  4. пивоварни услуги. Не може да стартира услугата. Неуспешно получаване на Bootstrap:5:Грешка при въвеждане/извеждане

  5. Node.js + MongoDB:MongoError:курсорът е унищожен или времето за изчакване е изтекло