Play Framework:如何从 Json 获取字段名称
Play Framework: How to get field names from Json
鉴于以下 JSON...
{
"fieldOne": "valueOne",
"fieldTwo": "valueTwo"
}
...如何使用 Play JSON 库(Scala 版本)获取字段名称 fieldOne
和 fieldTwo
?我需要这个,因为在我的用例中,字段名称可能会根据上下文而改变。
一旦你有了 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
鉴于以下 JSON...
{
"fieldOne": "valueOne",
"fieldTwo": "valueTwo"
}
...如何使用 Play JSON 库(Scala 版本)获取字段名称 fieldOne
和 fieldTwo
?我需要这个,因为在我的用例中,字段名称可能会根据上下文而改变。
一旦你有了 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