小编mca*_*ini的帖子

播放Scala读/写取决于类型

我在播放框架2.3中遇到与Json阅读器打交道的麻烦,具体取决于类字段:

我的模特:

trait Data{
  val id:String
  val type:String
  val creation_date:Date
}

case class Price(
  id:String,
  type:String,
  creation_date:Date,
  amount:Int,
  currency:String) extends Data

case class Weight(
  id:String,
  type:String,
  creation_date:Date,
  value:Int,
  unit_of_measurement:String) extends Data

case class MyObject(
  id:String,
  data:List[Data]
)
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何读取MyObject类并保留Json的所有值,例如:

{
  id:"1",data:
    [
      {
        id:"1",
        type:"price",
        creation_date:"2014-12-01T00:00:00.000Z",
        amount:99,
        currency:"dollar"
      },
      {
        id:"1",
        type:"price",
        creation_date:"2014-12-01T00:00:00.000Z",
        amount:99,
        currency:"dollar"
      },
      {
        id:"1",
        type:"weight",
        creation_date:"2014-12-01T00:00:00.000Z",
        value:2,
        unit_of_measurement:"tonne"
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了这个:

implicit val myObjectReads: Reads[MyObject] = (
  ....
  (__ \ "data").read(Reads.traversableReads[List,Data])
Run Code Online (Sandbox Code Playgroud)

但这不起作用

非常感谢您的帮助 !

MC

json scala playframework

5
推荐指数
1
解决办法
577
查看次数

标签 统计

json ×1

playframework ×1

scala ×1