На моем компьютере есть экземпляр MongoDB с базой данных.В одной из коллекций есть пара документов, я вставил их вручную.Существует приложение Scala для управления базой данных.Существует класс дел с именем Location.
case class Location(_id: Option[ObjectId] = None, name: String) {
var visible: Boolean = false
}
Это конфигурация MongoDB в приложении.
private val customCodecs = fromProviders(
classOf[Location]
)
private val javaCodecs =
fromCodecs(new LocalDateTimeDateCodec(), new LocalDateDateCodec())
private val codecRegistry =
fromRegistries(customCodecs, javaCodecs,
DEFAULT_CODEC_REGISTRY)
val dbConnection = MongoClient(dbURI)
val database: MongoDatabase = dbConnection.getDatabase(dbName).withCodecRegistry(codecRegistry)
В customCodecs
есть несколько определений classOf
, только что удаленныхих.Строка dbURI
извлекается из файла конфигурации.Существует конечная точка контроллера, которая возвращает все местоположения из базы данных.В результате получается:
[{"_id":{},"name":"Hungary","visible":false},{"_id":{},"name":"Germany","visible":false},{"_id":{},"name":"France","visible":false},{"_id":{},"name":"Switzerland","visible":false},{"_id":{},"name":"Poland","visible":false}]
Документы в базе данных имеют ObjectId, поскольку я ввел их вручную, а некоторые документы должны иметь свойство visibility
true.Я подозреваю, что с сериализацией JSON что-то не так, но не могу понять, что именно.Это код, который запрашивает коллекцию.
val query = collection.find().toFuture()
Await.result(query, 10.seconds).toList
Метод службы вызывает этот код и передает результат контроллеру.
import org.json4s.native.Serialization.write
val languages = enrollmentService.getAllLanguages
logger.info("GET all languages")
Ok(Json.parse(write[List[Language]](languages)))
Я использую json4s для сериализации / десериализации JSON.
В чем здесь проблема?