#java #mongodb
Вопрос:
Мое мобильное приложение получает документ JSON с моего сервера, но затем мое приложение отправляет его обратно на сервер с дополнительными заполненными полями, некоторые поля изменены.
После получения на сервере я могу преобразовать эту строку JSON в общий документ Mongo и сбросить ее в базу данных, а затем прочитать ее как POJO. Это расточительно, все, что я хочу сделать, это преобразовать JSON в POJO с помощью API mongo, немного манипулировать данными, а затем сохранить их.
Точно так же я иногда не хочу запрашивать как общий документ, но определенный типизированный POJO, а затем создавать из него документ / JSON после обработки его безопасным для типа способом.
В идеале я бы тоже хотел поддержать анализ списка документов. Используя API Java Mongo, возможно ли
- Преобразуйте POJO в строку JSON
- Преобразуйте строку JSON (или документ) в POJO
- Преобразуйте массив JSON в список
- Преобразование списка в список документов в формате JSON
Пожалуйста, обратите внимание, что я стараюсь избегать использования JAX-RS / JAXB или Spring или других сторонних библиотек, таких как GSON, поскольку до сих пор они не сохраняют JSON в том же формате, как если бы я запрашивал базу данных mongo с использованием общего типа документа.
В качестве действительно простого примера, мой JSON имеет свойства _id и даты, подобные этому, некоторые сущности будут иметь вложенные дочерние документы/типы …
{
"questions": [
{
"_id": {
"$oid": "605b3d62958763a2e18be480"
},
"companyId": {
"$oid": "554a0123c2e625bd02259318"
},
"groupId": null,
"title": "Test Title 1",
"desc": "Description 1",
"style": "range",
"minRange": 1,
"maxRange": 10,
"comments": false,
"startDate": {
"$date": "2021-03-01T00:00:00Z"
},
"endDate": {
"$date": "2021-03-31T23:59:00Z"
},
"deleted": true,
"frequencyMins": 1
},
..
],
}
}
Комментарии:
1. «…они не хранят JSON в том же формате…» Формат-JSON. Порядок полей не имеет значения.
2. Похоже, что ваш JSON является расширенным JSON и может быть импортирован в MongoDB по мере его использования
mongoimport
. Затем вы можете прочитать из базы данных как документ или POJO (используйте кодеки).3. Спасибо, но это JSON, который был сгенерирован из Mongo путем запроса с использованием универсального типа <Документ>. Мне не нужен монгоимпорт, я могу просто использовать SDK для добавления / обновления с использованием того же или измененного документа. Проблема в том, получаю ли я JSO из мобильного приложения и хочу сначала проанализировать его в POJO (как?) или запросить из БД в качестве POJO (вместо общего документа), чтобы безопасно обрабатывать его перед преобразованием в документ, а затем в строку JSON?