2016-10-26 2 views
0

Я пытаюсь изучить Scala/Play, поэтому я создал образец api, который использует WSRequest для подключения к GitHub и возвращает некоторую информацию на основе идентификатора пользователя. Я могу преобразовать этот ответ JsValue выполнив:Как обрабатывать JsValue в Scala/Play

val response: JsValeu = result.json 
Ok(json) 

У меня возникают проблемы при попытке манипулировать JsValue, например, значения фильтра на основе некоторых критериев, и т.д.? Нужно ли преобразовать его в JsObject? Я просмотрел документацию Play, но не могу понять, как это сделать.

Каков подход при обработке JsValue?

Благодаря

+3

Начните с https://www.playframework.com/documentation/2.5.x/ScalaJson и точнее описать то, что вы хотите сделать –

+0

Ok (json) .as ("application/javascript; charset = utf-8") – ALMEK

+0

Где ваша проблема, хотите ли вы преобразовать свой ответ val в класс case? и вы не знаете, как использовать JSON Reads/Writes/Format combinators – ALMEK

ответ

1

JsValue означает любой вид объекта данных JSON, в том числе объектов, чисел, строк и т.д.

Если вы хотите, чтобы отфильтровать значения в JSObject, то вам придется «слепок» ваш JsValue в JsObject. как:

val jsonObject: JsObject = response.as[JsObject]

Затем вы можете мутировать объект, как вам нравится.

Прочитайте документацию по JsObject и JsValue, чтобы узнать, как сделать остальную часть того, что вы пытаетесь сделать.