【发布时间】:2016-07-27 03:24:05
【问题描述】:
我需要将 scala 案例类转换为 json。我正在使用喷雾 json。 问题是我的案例类有超过 22 个字段,并且喷雾 json 仅支持 22 个字段。
我写不出来
implicit val someformat = jsonformat25(Somecaseclass)
case class Color(name: String, red: Int, green: Int, blue: Int)
object MyJsonProtocol extends DefaultJsonProtocol {
implicit val colorFormat = jsonFormat4(Color)
}
import MyJsonProtocol._
import spray.json._
val json = Color("CadetBlue", 95, 158, 160).toJson
val color = json.convertTo[Color]
我看到有并尝试使用它,但它不起作用。请提出一些解决方案。
implicit object format extends RootJsonFormat[SomeObject] {
def write(a: SomeObject) = a match {
case p: SomeObject=> p.toJson
}
def read(value: JsValue) = {
value.convertTo[SomeObject]
}
}
请不要建议拆分类参数并制作嵌套案例类。我的要求是我在一个案例类中有超过 22 个字段。
【问题讨论】:
-
从未使用过 spray-json,但如果您愿意使用 Play-Json,请查看 pedrorijo.com/blog/scala-json 和 pedrorijo.com/blog/scala-json-part2
-
使用kebs-spray-json 扩展库来简化格式的派生。 Here 是一个单线示例,它为 API where some cases classes have more than 40 fields 派生 Spray-JSON 格式。