小编Nic*_*ton的帖子

如何在play 2.1中处理JSON解析中的可选字段

我正在使用新的Play 2.1-RC1框架,我有一个具有Option []字段的类,如下所示:

import play.api.libs.json._
import play.api.libs.json.util._
import play.api.libs.json.Reads._
import play.api.libs.json.Writes._
import play.api.libs.json.Format._
import play.api.libs.functional.syntax._

case class Test(name: String, value: Option[String])

object Test {
  implicit val testFormat = (
    (__ \ "name").format[String] and
    (__ \ "value").format[Option[String]] 
  )(Test.apply, unlift(Test.unapply))
  def fromJson(js: String): Test = {
    Json.fromJson[Test](Json.parse(js)).fold(
        valid   = { t => t},
        invalid = { e => {
          val missingField = (e(0)._1).toString.substring(1)
          val badJs = js.trim
          val newJs = badJs.substring(0, badJs.length()-1)+",\""+missingField+"\":null}"
          fromJson(newJs)
        }} 
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够处理省略可选"值"数据的JSON字符串,例如

val y = """{"name":"someone"}""" …
Run Code Online (Sandbox Code Playgroud)

scala playframework playframework-2.0

11
推荐指数
2
解决办法
8777
查看次数

标签 统计

playframework ×1

playframework-2.0 ×1

scala ×1