2015-04-05 2 views
1

Учитывая следующий JSON ...Play Framework: Как получить имена полей из Json

{ 
    "fieldOne": "valueOne", 
    "fieldTwo": "valueTwo" 
} 

... как я могу получить имена полей fieldOne и fieldTwo с Play JSON библиотеки (версия Scala)? Мне нужно это, потому что в моем случае имена полей могут меняться в зависимости от контекста.

ответ

3

После того, как у вас есть JsObject, вы можете позвонить keys:

val js = Json.parse("""{ 
    "fieldOne": "valueOne", 
    "fieldTwo": "valueTwo" 
}""") 

js.transform[JsObject].map(_.keys) 

С, что вы получите JsResult[Set[String]] и вы можете решить, как справиться с обработкой ошибок.

+0

К сожалению, это не похоже на работу с игровыми Json 2.4.2. Я получаю ошибку компилятора: «Отсутствующие аргументы для преобразования метода в значении JsReadable» – BeepDog

2

В Play Json 2.4.3, по крайней мере, ваш синтаксис немного отличается:

val js = Json.parse("""{ 
    "fieldOne": "valueOne", 
    "fieldTwo": "valueTwo" 
}""") 

js.as[JsObject].fields 
//or 
js.as[JsObject].fieldSet 
Смежные вопросы