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

Buat serial satu kelas dalam dua cara berbeda dengan Jackson

Dari melihat opsi, tampaknya Anda dapat membubuhi keterangan properti untuk hanya ditampilkan jika diberikan View diteruskan ke ObjectMapper digunakan untuk serialisasi. Dengan demikian Anda dapat mengedit kelas:

public static class FooReference {
    public DBRef<Foo> foo;

    @JsonView(Views.WebView.class)
    public Foo getFoo() {
        return foo.fetch();
    }
}

dan berikan:

class Views {
    static class WebView { }
}

dan kemudian membuat cerita bersambung setelah membuat konfigurasi dengan tampilan yang benar:

SerializationConfig conf = objectMapper.getSerializationConfig().withView(Views.WebView.class);
objectMapper.setSerializationConfig(conf);

Yang kemudian akan membuat serial itu. Tidak menentukan tampilan saat membuat serial dengan pembungkus MongoDB berarti metode tersebut akan diabaikan. Properti tanpa anotasi JsonView diserialisasikan secara default, perilaku yang dapat Anda ubah dengan menentukan:

objectMapper.configure(SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION, false);

Info lebih lanjut tersedia di Jackson Wiki.

Masih ada alternatif lain juga, ternyata:ada Jackson MixIns yang akan membiarkan Anda mengganti (de)serialization perilaku bagian dari kelas tanpa memodifikasi kelas itu sendiri, dan pada Jackson 2.0 (rilis sangat baru) ada filter , juga.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Perbedaan antara mendekorasi properti di C# dengan BsonRepresentation(BsonType.ObjectId) vs BsonId vs ObjectId

  2. Penerapan dan Pemeliharaan MongoDB Menggunakan Ansible

  3. MongoDB:Menghitung berapa banyak dari setiap nilai berbeda yang ada?

  4. Perbaiki "nama indeks harus berupa string" saat Menjatuhkan Beberapa Indeks di MongoDB

  5. Kelompokkan berdasarkan elemen array tertentu dengan kerangka agregasi mongo