gpt4 book ai didi

json - Play 案例类的json读取和默认参数?

转载 作者:行者123 更新时间:2023-12-05 01:20:49 24 4
gpt4 key购买 nike

我在使用默认参数和使用 Play Json Read 时遇到问题。这是我的代码:

  case class Test(action: String, storeResult: Option[Boolean] = Some(true), returndata: Option[Boolean] = Some(true))

val json =
"""
{"action": "Test"}"""

implicit val testReads: Reads[Test] =
(
(JsPath \\ "action").read[String](minLength[String](1)) and
(JsPath \\ "store_result").readNullable[Boolean] and
(JsPath \\ "returndata").readNullable[Boolean]
) (Test.apply _)
val js = Json.parse(json)

js.validate[Test] match {
case JsSuccess(a, _) => println(a)
case JsError(errors) =>
println("Here")
println(errors)
}

我希望最后得到的是

Test("Test", Some(true), Some(true))

但我得到了:

Test("Test",None,None)

为什么会这样?如果我没有在 json 中提供参数,为什么它没有默认值?如何实现我想要的?

最佳答案

在 Play 2.6 中你可以简单地写:

Json.using[Json.WithDefaultValues].reads[Test]

关于json - Play 案例类的json读取和默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com