Я оновив бібліотеку 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"))
, але це дало мені String [123]
, що насправді не те, що я хочу. Як я можу отримати значення безпосередньо як подвійний?
Відповіді:
1 для відповіді № 1Використовуючи \
тут неправильно, тому що він рекурсивно пересуває JSON і витягує будь-який "k1"
вона стикається, виробляючи a JArray
, таким чином, помилка.
Ви повинні або використовувати який звертається тільки до одного безпосередньо вкладеного ключа об'єкта JSON, або
extract[List[Double]]
з вашого коду.