Библиотека Scala JSON с автоматической сериализацией (через самоанализ)
Я ищу хорошую библиотеку JSON для Scala, которая может сериализовать произвольный граф объектов в JSON, не требуя от меня написания кода отображения.
Джексон из Java делает это, но он не является родным для Scala, и у меня возникают некоторые проблемы с его десериализацией вложенных обобщенных элементов (которые я приписываю системе типов Java). Есть Джерксон, фантик Scala для Джексона, но он заброшен на несколько лет.
Что вы порекомендуете?
2 ответа
Core Jackson не имеет явной поддержки Scala, но модуль Jackson Scala:
https://github.com/FasterXML/jackson-module-scala
поддерживает типы данных Scala.
play-json, http://mvnrepository.com/artifact/com.typesafe.play/play-json_2.11, является хорошим выбором. На самом деле это обертка вокруг Джексона, но она предоставляет множество утилит, которые уменьшают сериализацию и десерилизацию. Для получения более подробной информации, https://www.playframework.com/documentation/2.4.x/ScalaJson
Кроме того, он уже обеспечивает чтение и запись для базового типа данных в Scala. Все, что вам нужно сделать, это определить формат модели в объекте-компаньоне.
import play.api.libs.json.Json
implicit val format = Json.format[YourObject]
Это подробный пример, https://github.com/luongbalinh/play-mongo/blob/master/app/models/User.scala