dru*_*ist 4 json scala playframework-2.0
我开始尝试使用Scala和Play来解析Json数据,并按照https://www.playframework.com/documentation/2.3.9/ScalaJson上的教程进行操作.现在,当我尝试运行那里给出的示例代码时:
val json: JsValue = Json.parse("""{
"name" : "Watership Down",
"location" : {
"lat" : 51.235685,
"long" : -1.309197
},
"residents" : [ {
"name" : "Fiver",
"age" : 4,
"role" : null
}, {
"name" : "Bigwig",
"age" : 6,
"role" : "Owsla"
} ]
}
""")
val lat = json \ "location" \ "lat"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
java.lang.NoSuchMethodError: play.api.libs.json.JsValue.$bslash(Ljava/lang/String;)Lplay/api/libs/json/JsValue;
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我正在使用Scala 2.10和Play 2.3.9.
谢谢.
在Play 2.4.x中,JsLookupResult表示特定Json路径上的值,可以是实际的Json节点,也可以是未定义的.JsLookupResult有两个子类:分别是JsDefined和JsUndefined.
您可以按以下方式修改代码:
val name: JsLookupResult = json \ "user" \ "name"
name match {
case JsDefined(v) => println(s"name = ${v.toString}")
case undefined: JsUndefined => println(undefined.validationError)
}
Run Code Online (Sandbox Code Playgroud)