/ / Get Double з структури JSON - json, scala, json4s

Отримати подвійну структуру з JSON - 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")), але це дало мені String [123], що насправді не те, що я хочу. Як я можу отримати значення безпосередньо як подвійний?

Відповіді:

1 для відповіді № 1

Використовуючи \ тут неправильно, тому що він рекурсивно пересуває JSON і витягує будь-який "k1" вона стикається, виробляючи a JArray, таким чином, помилка.

Ви повинні або використовувати який звертається тільки до одного безпосередньо вкладеного ключа об'єкта JSON, або extract[List[Double]] з вашого коду.