从JSON结构中获取Double

时间:2016-06-15 14:36:31

标签: json scala json4s

我已经更新了一个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?

1 个答案:

答案 0 :(得分:1)

在这里使用\\访问器是不正确的,因为它以递归方式遍历JSON并提取它遇到的任何"k1",从而产生JArray,从而产生错误。

您应该使用\只能访问JSON对象的一个​​直接嵌套键,或者使用代码中的extract[List[Double]]