我不知道是否有办法在Map[Symbol,Any]
usingplay.api.libs.json
库中转换 JSON 片段(作为字符串),其中Any
可能是 a Int
、 a Double
、 aString
或嵌套的Map[Symbol,Any]
。
任何人都可以给我一个提示来得到这个吗?
我不知道是否有办法在Map[Symbol,Any]
usingplay.api.libs.json
库中转换 JSON 片段(作为字符串),其中Any
可能是 a Int
、 a Double
、 aString
或嵌套的Map[Symbol,Any]
。
任何人都可以给我一个提示来得到这个吗?
JsObject.fieldSet
会给你一个Set[(String, JsValue)]
你可以转换成的Map[Symbol, Any]
。您必须对所有可能的子类进行模式匹配,JsValue
并将每个子类转换为您想要的类型。
例如,像这样:
Json.parse(text) match {
case js: JsObject =>
js.fieldSet.map {
case (key, value) => Symbol(key) -> transform(value)
}.toMap
case x => throw new RuntimeException(s"Expected object json but got $text")
}
def transform(jsValue): Any = jsValue match {
case JsNumber(value) => value.toDouble
...ect...
}