Я отправляю данные JSON из моей угловой формы в контроллер Play Framework. Контроллер получает сообщения, и когда я его печатаю консоль, он выглядит следующим образом:
{"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
потому что он не может получить идентификатор cID из строки JSON? Как получить значение для cID без escape-символа \
значение "username" кодируется 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")
}
userNameJsonStr
уже является JsValue. IDE жалуется, говоря, чтоCannot resolve reference parse with such signature