我已经更新了一个JSON库,但我无法提取我想要的值。
JSON看起来像这样:
{
"k1": {
"k2 : {
"k3" : 123
}
}
}
以前,这就是诀窍:
(parse(json) \\ "k1" \\ "k2" \\ "k3").extract[Double]
做了诀窍,现在却没有。现在我得到了例外:
org.json4s.package$MappingException: Do not know how to convert JArray(List(JInt(123))) into double
我尝试使用compact(render(parse(json) \\ "k1" \\ "k2" \\ "k3"))
,但这给了我字符串[123]
,这不是我想要的。如何直接将值提取为double?
答案 0 :(得分:1)
在这里使用\\
访问器是不正确的,因为它以递归方式遍历JSON并提取它遇到的任何"k1"
,从而产生JArray
,从而产生错误。
您应该使用\
只能访问JSON对象的一个直接嵌套键,或者使用代码中的extract[List[Double]]
。