2010-09-07 12 views

ответ

2

BSON site указывает на this

Если вы хотите использовать его с MongoDB, посмотрите на this example

+2

Guess Я мог бы взять на себя часть кодирования из Монго и сделать его внешнюю библиотеку. Был надежд от чего-то более «зрелого», спасибо за подсказку. –

+2

, если честно, пример mongoDB немного заторможен! почему это не может быть так просто, как преобразование json? – nightograph

+3

У ответа есть некорректная ссылка – seinecle

1

Для того, чтобы получить нашу модель в MongoDB мы использовали Google gson, чтобы преобразовать нашу модель в формате JSON сначала, а затем мы использовали JSON util parse method from MongoDB для анализа нашей сгенерированной строки JSON в DBObject, который вы можете поместить в свой MongoDB. Честно говоря, я не знаю о производительности.

+0

Проблема с этим подходом заключается в том, что вы потеряете некоторые типы данных (например, Date). – Enrichman

1

Существует также довольно новый проект BSON4Jackson, который позволяет использовать Jackson для обработки данных BSON. Это означает полную привязку данных (к/от POJO), древовидную модель, даже потоковое (инкрементное) чтение/запись до степени, которую она может быть выполнена с помощью формата BSON.

+0

Ненавижу Джексона. Его API просто кричит «чрезмерное усложнение». Библиотека Крокфорда - самая лучшая и самая маленькая. –

+4

Вы имеете право на свое плохо продуманное мнение. Игрушечные библиотеки, такие как эталонная реализация org.json, вероятно, подходят вам. – StaxMan

2

Существует также ebson. Я не пробовал ...

6

Вы можете использовать драйвер MongoDB для Java для хранения объекта BSON, а затем преобразовать его в String, который затем можно обернуть с помощью JSONObject.

Например, вот как я создам обычный документ:

BasicDBObject obj = new BasicDBObject(); 
obj.put("name", "Matt"); 
obj.put("date", new Date()); 

Затем, чтобы получить String представление объекта, просто вызовите:

String bsonString = obj.toString(); 

Заверните с JSONObject и получить атрибут date, который должен вернуть его в формате, совместимом с BSON.

JSONObject newObject = new JSONObject(bsonString); 
System.out.println(newObject.get("date")); 

Результирующий выходной что-то вроде:

{"$date":"2012-08-10T05:22:53.872Z"}