MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Json.NET deserializing Mongo ObjectId memberikan hasil yang salah

Anda menerapkan ReadJson metode konverter salah. existingValue parameter tidak memberi Anda nilai deserialized yang dibaca dari JSON, ini memberi Anda nilai yang ada dari objek yang akan Anda ganti . Dalam kebanyakan kasus ini akan menjadi nol atau kosong. Yang perlu Anda lakukan adalah menggunakan reader untuk mendapatkan nilai dari JSON, konversikan sesuai kebutuhan, lalu kembalikan nilai yang dikonversi.

Dengan asumsi ObjectId . Anda class memiliki konstruktor yang menerima string hex, berikut adalah cara Anda mengimplementasikan ReadJson metode:

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. Bagaimana cara terhubung ke instance MongoDB eksternal di Meteor?

  2. MongoDB mengembalikan True jika dokumen ada

  3. Perbarui koleksi MongoDB menggunakan $toLower

  4. Mongodb - $group di dalam $group (dengan 'key')

  5. Bidang kueri dalam Koleksi MongoDB.