Play Framework:如何从 Json 获取字段名称

Play Framework: How to get field names from Json

鉴于以下 JSON...

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

...如何使用 Play JSON 库(Scala 版本)获取字段名称 fieldOnefieldTwo?我需要这个,因为在我的用例中,字段名称可能会根据上下文而改变。

一旦你有了 JsObject,你可以调用 keys:

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

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

有了它你会得到一个 JsResult[Set[String]] 并且你可以决定如何处理错误。

在 Play Json 2.4.3 中,至少,您的语法有点不同:

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

js.as[JsObject].fields
//or
js.as[JsObject].fieldSet