Я использую оптику Circe, подобную этой,
import io.circe.parser._
import io.circe.optics._
import io.circe.optics.JsonPath._
val json = parse("""{"response": {"person": {"firstname": "foo", "lastname":"bar"}}}""").right.get
Теперь я хочу извлечь объект всего лица в виде строки ... из этого json, например,
val p = root.response.person.string
, а затем декодироватьэто в класс case как
case class Person(firstname: String, lastname: String)
decode[Person](p.getOption(json).get)
Но это не работает, потому что root.response.person.string
возвращает ноль.Я думаю, что это работает только для фактических строковых и целочисленных столбцов.
Так можно ли использовать оптическую систему для извлечения целых разделов json (например, объекта person внутри json)?и затем этот раздел декодируется в класс case?