Sto salvando un oggetto con un campo java.util.Date in un'istanza di MongoDB 3.2.conversione di oggetti documento in MongoDB 3 in POJOS
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(myObject);
collection.insertOne(Document.parse(json));
la stringa contiene:
"captured": 1454549266735
poi ho letto che dall'istanza MongoDB:
final Document document = collection.find(eq("key", value)).first();
final String json = document.toJson();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
xx = mapper.readValue(json, MyClass.class);
la deserializzazione fallisce:
java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException : Impossibile deserializzare istanza di java.util.Date fuori START_OBJECT gettone
vedo che la stringa JSON creato da "document.toJson()" contiene:
"captured": {
"$numberLong": "1454550216318"
}
al posto di quello che era originariamente ("catturato": 1454549266735) I documenti MongoDB dicono che hanno iniziato a usare "MongoDB Extended Json". Ho provato sia Jackson 1 che 2 per analizzarlo - senza fortuna.
qual è il modo più semplice per convertire gli oggetti Documento forniti da MongoDB 3 in POJO Java? forse posso saltare completamente a JSON()?
Ho provato il mongojack, che non supporta MongoDB3.
Guardato un paio di altri mappatori POJO elencati nella pagina dei documenti MongoDB - tutti richiedono di inserire le loro annotazioni personalizzate in classi Java.
com.mongodb.util.JSON.serialize (documento) è stato ritirato nelle nuove versioni – Gilian