【问题标题】:JSON/Playframework invalid typeJSON/Playframework 无效类型
【发布时间】:2013-01-29 03:49:59
【问题描述】:

我在使用 Play 2.1 解析器解析 JSON 响应时遇到了一些问题。假设我收到以下 json 作为字符串:

{"name": "myName"}

我可以使用这几行来解析它...

case class MyJsonObj(name: String)
implicit val jsonRead = (
  (__ \ "name").read[String])(MyJsonObj.apply _)
val myObj = Json.parse("{\"name\": \"myName\"}").valide[MyJsonObj]

现在说我收到了几乎相同的消息,但我收到的不是字符串“myName”而是一个空值(即:{“name”:null}),解析失败......理想情况下,每当我收到一个空值,我想输入一个默认值(而不是引发错误)并继续解析。

有什么建议吗? 谢谢!

【问题讨论】:

    标签: scala playframework playframework-2.1 typesafe-stack


    【解决方案1】:

    您可以通过readNullableorElse 实现此目的:

    (__ \ 'name).readNullable[String].map(_.getOrElse("default"))
    // Another solution:
    (__ \ 'name).read[String] orElse Reads.pure("default")
    

    注意:读者不能很好地使用“one-field”案例类(但我想这只是为了这个例子)。否则,请参阅this topic

    【讨论】:

    • 非常感谢!我最终使用了第二个选项。
    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2019-10-26
    • 2021-08-08
    • 2015-03-19
    相关资源
    最近更新 更多