У меня есть этот объект JSON
{
"name": "Chaitanya",
"addresses": [
{ "street": "20 ABC", "apt": "10" },
{ "street": "10 XYZ", "apt": "D3" }
]
}
который я пытаюсь десериализовать в следующий класс дел:
case class Person(
name: Option[String] = None,
addresses: Option[Seq[String]] = Some(Seq.empty)
)
Поле
addresses
в приведенном выше классе case является последовательностью String, где, как и в реальном JSON, это массив объектов. Когда я десериализую и сериализую его обратно, используя:
implicit val formats = Serialization.formats(NoTypeHints)
val parsed = parse(data).extractOpt[Person]
val str = write( parsed )
Я вижу:
{ "name":"Chaitanya", "addresses":[] }
Можно ли как-то сказать json4s, чтобы эти json-объекты оставались строковыми, а не анализировались? Где я могу ожидать, что это будет массив stingified json объектов:
{
"name": "Chaitanya",
"addresses": [
"{\"street\":\"20 ABC\",\"apt\":\"10\"}",
"{\"street\":\"10 XYZ\",\"apt\":\"D3\"}"
]
}
Есть ли способ сделать это с помощью пользовательского сериализатора или подсказки типа?