Как анализировать вложенный json-массив в потоковом режиме с помощью zio-json

Для такого массива json:

      [
my-json-obj1,
my-json-obj2,
my-json-obj3,
....
my-json-objN
]

ИMyJsonObjкласс, который представляет отображение одного объекта в массиве, я могу сказать:

      val myJson = '''[...]'''
ZStream
  .fromIterable(myJson.toSeq)
  .via(JsonDecoder[MyJsonObj].decodeJsonPipeline(JsonStreamDelimiter.Array))
             

для синтаксического анализа этого массива "потоковым" способом, т.е. испускания сопоставленных объектов по мере их анализа из входных данных, в отличие от считывания сначала всех входных данных, а затем извлечения объектов.

Как я могу сделать то же самое, если массив вложен в объект json, например, так?:

      {
"hugeArray": 
  [
    my-json-obj1,
    my-json-obj2,
    my-json-obj3,
    ....
    my-json-objN
  ]
}

Я просмотрел исходный код, но не нашел там ни одной лазейки для этого варианта использования. Я думаю, я мог бы вырезать этот массив из документа json и передать его вdecodeJsonPipeline. Есть ли лучший способ сделать это с помощью json-синтаксиса? Если не прямо вzio-jsonвозможно, с помощью некоторых других библиотек json с открытым исходным кодом?

0 ответов

Другие вопросы по тегам