我有以下代码与play json一起使用
import 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)
}
}
Run Code Online (Sandbox Code Playgroud)
情况下类A1具有默认值x是Some (1).当我解析时{"y":"xyz"},结果是A1(None,Some(xyz)),我认为应该在这里使用默认值,即tis,结果应该是A1(Some(1),Some(xyz))
这是一个错误吗?或者我如何解决这个问题