Есть такая либа, для разбора json из стрима по частям.
https://github.com/salsify/jsonstreamingparser
Сам не пробовал, но вроде как она решает проблему нехватки памяти при больших объёмах json.
Вы пишете что на основе ответа создаёте другие массивы, так что возможно этот вариант не подойдёт, если нужны все данные сразу, чтобы создать эти массивы.