Ответ 1
Существует несколько java-библиотек, которые могут вам помочь:
- Morhpia - http://code.google.com/p/morphia/
- Spring Данные для MongoDB - http://www.springsource.org/spring-data/mongodb
MongoDB, кажется, возвращает объекты BSON/JSON.
Я думал, что вы наверняка сможете получить значения как строки, int и т.д., которые затем могут быть сохранены как POJO.
У меня есть DBObject (созданный как объект BasicDBObject) в результате итерации по списку... (cur.next()).
Является единственным способом (кроме использования какой-либо структуры сохранения) для получения данных в POJO для использования JSON serlialiser/deserialiser?
Мой метод выглядит следующим образом:
public List<User> findByEmail(String email){
DBCollection userColl;
try {
userColl = Dao.getDB().getCollection("users"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace();}
DBCursor cur = userColl.find();
List<User> usersWithMatchEmail = new ArrayList<User>();
while(cur.hasNext()) {
// this is where I want to convert cur.next() into a <User> POJO
usersWithMatchEmail.add(cur.next());
}
return null;
}
EDIT: Это довольно очевидно, просто сделайте что-то вроде этого.
Существует несколько java-библиотек, которые могут вам помочь:
Пусть Spring делает тяжелый подъем с материалом, который он уже построил для этого...
Реальный трюк: mongoTemplate.getConverter(). read (Foo.class, obj);
Например, при использовании DBCursor -
while (cursor.hasNext()) {
DBObject obj = cursor.next();
Foo foo = mongoTemplate.getConverter().read(Foo.class, obj);
returnList.add(foo);
}
http://revelfire.com/spring-data-mongodb-convert-from-raw-query-dbobject/
Несмотря на поздний ответ, кто-то может найти это полезным.
Я использую GSON для преобразования из BasicDBObject
в свой собственный POJO, который TinyBlogDBObject
TinyBlogDBObject obj = convertJSONToPojo(cursor.next().toString());
private static TinyBlogDBObject convertJSONToPojo(String json){
Type type = new TypeToken< TinyBlogDBObject >(){}.getType();
return new Gson().fromJson(json, type);
}
Вы можете использовать GSON библиотеку, предоставляемую Google. Вот пример . Есть много других api, которые вы можете использовать для преобразования json в pojo, например jettision api и т.д.