Как проанализировать массив Json внутри поля, получая только определенные поля объекта - PullRequest
1 голос
/ 15 июня 2019

У меня возникли проблемы с использованием Circe для более сложного извлечения. Если у меня есть ниже Json:

{
  "data": [
    {"a": "a-string", "b": "a-string", "c": "a-string"},
    {"a": "a-string", "b": "a-string", "c": "a-string"},
    {"a": "a-string", "b": "a-string", "c": "a-string"}
  ]
}

Как я могу использовать circe для получения списка этих объектов, но только с полями a и b?

1 Ответ

2 голосов
/ 15 июня 2019

Попробуйте определить модель, которая содержит только поля a и b, например

case class Element(a: String, b: String)

Например,

import io.circe.generic.auto._
import io.circe.parser._

case class Element(a: String, b: String)
case class Data(data: List[Element])

val raw = """{"data": [{"a": "a-string", "b": "a-string", "c": "a-string"},{"a": "a-string", "b": "a-string", "c": "a-string"}, {"a": "a-string", "b": "a-string", "c": "a-string"}] }"""
decode[Data](raw).getOrElse(throw new RuntimeException)

вывод

res0: Data = Data(List(Element(a-string,a-string), Element(a-string,a-string), Element(a-string,a-string)))
...