从 JSON 结构中获取 Double
Get Double from JSON structure
我已经更新了一个 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]
,这并不是我真正想要的。如何直接将值提取为双精度值?
在这里使用 \
访问器是不正确的,因为它递归地遍历 JSON 并提取它遇到的任何 "k1"
,产生 JArray
,因此是错误。
您应该使用仅访问 JSON 对象的一个直接嵌套键的 \
,或者您的代码中的 extract[List[Double]]
。
我已经更新了一个 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]
,这并不是我真正想要的。如何直接将值提取为双精度值?
在这里使用 \
访问器是不正确的,因为它递归地遍历 JSON 并提取它遇到的任何 "k1"
,产生 JArray
,因此是错误。
您应该使用仅访问 JSON 对象的一个直接嵌套键的 \
,或者您的代码中的 extract[List[Double]]
。