MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Deserializacja Json.NET Mongo ObjectId daje zły wynik

Implementujesz ReadJson nieprawidłowa metoda konwertera. existingValue parametr nie daje zdeserializowanej wartości odczytanej z JSON, podaje istniejącą wartość obiektu, który zamierzasz zastąpić . W większości przypadków będzie to wartość zerowa lub pusta. Musisz użyć reader aby uzyskać wartość z JSON, przekonwertuj ją w razie potrzeby, a następnie zwróć przekonwertowaną wartość.

Zakładając Twój ObjectId klasa ma konstruktor, który akceptuje ciąg szesnastkowy, oto jak zaimplementować 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przekonwertować milisekundy do daty w agregacji mongodb?

  2. Filtruj tablicę poddokumentów, nadal zwracając dane nadrzędne, jeśli są puste

  3. MongoDB:Jak rozwiązać DBRef po stronie klienta?

  4. Zachowanie projekcji Morphia dla przykładowej zmiennej z wartością domyślną

  5. Pobierz listę przedmiotów, sprawdzając wiele wartości atrybutów w MongoDB w golang