从Scala&中的request.body读取一个JSON值。玩框架

时间:2016-02-11 05:13:54

标签: angularjs json scala playframework

我正在将我的角形式的JSON数据发送到Play Framework Controller。 Controller接收消息,当我控制台打印它时,它看起来像如下:

{"username":"{   \"tID\": 123,   \"cID\": \"TEST\",   \"version\": 1}"}

到目前为止我所做的是:[注意:我正在使用play.api.libs.json]

def sendMessage = Action(parse.json) {
  request =>
  val message: JsValue = request.body
  val cID = (message \ "cID").get
}

但是我收到错误java.util.NoSuchElementException: None.get ,因为它无法从JSON字符串中检索cID?如何在没有转义字符\

的情况下获取cID的值

1 个答案:

答案 0 :(得分:1)

“用户名”的值已编码为Json String,因为您应解码Json String

试试这个。

def sendMessage = Action(parse.json) { request =>
  val message: JsValue = request.body
  val userNameJsonStr = (message \ "username").as[String]
  val value = Json.parse(userNameJsonStr)
  val cID = (value \ "cID")
}