我有以下代碼發揮JSON工作播放JSON面色不在這種情況下
進口play.api.libs.json.Json
trait A {
def x: Option[Int]
def y: Option[String]
}
case class A1(x: Option[Int] = Some(1), y: Option[String]) extends A
object PlayJsonBug {
def main(args: Array[String]): Unit = {
implicit val A1Reader = Json.reads[A1]
implicit val A1Writer = Json.writes[A1]
val str = """{"y":"xyz"}"""
val a: A1 = Json.fromJson[A1](Json.parse(str)).get
println(a)
}
}
案例類A1具有默認值x
運作良好這是Some (1)
。 當我分析{"y":"xyz"}
,結果是A1(None,Some(xyz))
,我認爲默認值應該用在這裏,是那朵,結果應該是A1(Some(1),Some(xyz))
這是一個錯誤嗎?要不我怎麼能解決這個問題
我想知道您正在使用的播放JSON的版本。我記得瀏覽了play-json的git歷史,並且看到最近(也就是不到一年的時間)提交與使用默認參數處理case類有關的提交。我不記得細節但是... –
感謝@ FredericA.I使用播放2.6.0 – Tom