Как анализировать вложенный 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 с открытым исходным кодом?