Я указываю FullTypeHints перед десериализацией
def serialize(definition: Definition): String = {
val hints = definition.tasks.map(_.getClass).groupBy(_.getName).values.map(_.head).toList
implicit val formats = Serialization.formats(FullTypeHints(hints))
writePretty(definition)
}
Создает json с подсказками типов, отлично!
{
"name": "My definition",
"tasks": [
{
"jsonClass": "com.soft.RootTask",
"name": "Root"
}
]
}
Десериализация не работает, она игнорирует поле "jsonClass" с подсказкой типа
def deserialize(jsonString: String): Definition = {
implicit val formats = DefaultFormats.withTypeHintFieldName("jsonClass")
read[Definition](jsonString)
}
Почему я должен повторять typeHints, используя Serialization.formats(FullTypeHints(hints))
для десериализации, если подсказки находятся в json строке?
Может ли json4s
выводить их из json?