【发布时间】:2018-05-04 19:14:12
【问题描述】:
我有这个 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 上述案例类中的字段是字符串序列,而在实际 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\"}"
]
}
有什么方法可以使用自定义序列化程序或类型提示来实现吗?
【问题讨论】: