这个问题可能闻起来很愚蠢,但我真的想知道如何检查Play 2中的NULL JsValue:
scala> import play.api.libs.json._
import play.api.libs.json._
scala> val json = Json.obj("a" -> true)
json: play.api.libs.json.JsObject = {"a":true}
scala> val a = json \ "nonExisting"
a: play.api.libs.json.JsValue = null
scala> a == null
res1: Boolean = false
scala> Option(a)
res2: Option[play.api.libs.json.JsValue] = Some(null)
Run Code Online (Sandbox Code Playgroud)
你可以看到变量的值a是null,但==与检查的回报false.但是,以下工作符合预期:
scala> val b: JsValue = null
b: play.api.libs.json.JsValue = null
scala> b == null
res3: Boolean = true
Run Code Online (Sandbox Code Playgroud)
当我转向使用类型转换时asOpt,它似乎再次起作用:
scala> val c = json \ …Run Code Online (Sandbox Code Playgroud)