繁体   English   中英

使用Play框架在Scala中解析Json字符串

[英]Parsing a Json String in Scala using Play framework

我开始尝试使用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"

我收到以下错误:

java.lang.NoSuchMethodError: play.api.libs.json.JsValue.$bslash(Ljava/lang/String;)Lplay/api/libs/json/JsValue;

我究竟做错了什么? 我正在使用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)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM