播放Scala JSON正文解析器默认值字段

ufa*_*oli 6 json default scala playframework-2.0 slick

你好,我遇到了JSON身体解析器的问题.我的问题是以下我有一个带有一些可选参数的案例类(Option [T])和一个带有默认值的参数,我不希望将其输入为Option [T].

但是,当解析具有省略默认值的字段的JSON主体时,我收到错误

play.api.libs.JsError
/count error path missing
Run Code Online (Sandbox Code Playgroud)

这是我的控制器代码:

object MyController extends Controller{


  implicit val itemWrites = Json.writes[Item]
  implicit val itemReads = Json.reads[Item]
  implicit val itemFormats = Json.format[Item]

  def add = DBAction(parse.json){ implicit rs =>

    val item =  rs.request.body.validate[Item]
}
Run Code Online (Sandbox Code Playgroud)

这是我的案例类:

case class Item( id:Option[Int], name:String, description:Option[String], count:Int=0)
Run Code Online (Sandbox Code Playgroud)

有没有机会我可以使用默认值字段实现与Option [T]相同的行为?

谢谢

我正在使用 :

  • 斯卡拉2.10
  • Play Framework 2.2.1
  • Play-Slick插件0.5.0.8

Max*_*tec 4

几乎。您可以使用 Option 定义默认值,如下所示:

case class Item( description:Option[String] = Some("String"))
Run Code Online (Sandbox Code Playgroud)

如果你确实不想要一个选项,你可以看看这里:

play 2 JSON 格式中缺少属性的默认值