Если вы используете Oracle 12cR2, вы можете использовать функции, предоставляемые Oracle (JSON_OBJECT, JSON_ARRAY, JSON_OBJECTAGG и т. Д.), Чтобы генерировать JSON непосредственно из базы данных, готовой к чтению. Это будет значительно быстрее и проще для кодирования.
Вы не опубликовали дополнительную информацию о своей модели данных, чтобы мы могли помочь с чем-то более конкретным, но не стесняйтесь изучать приведенную ниже документацию.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/generation.html
Ниже я создал один быстрый пример, чтобы показать, как он работает:
FSITJA@db01 2019-06-26 14:15:02> select json_object('name' value username,
2 'default_ts' value default_tablespace,
3 'temp_ts' value temporary_tablespace,
4 'common' value case when common = 'Y' then 'YES' else 'NO' end,
5 'oracle_maint' value case when oracle_maintained = 'Y' then 'YES' else 'NO' end
6 format json) as json_obj
7 from dba_users u
8 where oracle_maintained = 'Y'
9 and rownum <= 5;
JSON_OBJ
-----------------------------------------------------------------------------------------------------------
{"name":"SYS","default_ts":"SYSTEM","temp_ts":"TEMP","common":"NO","oracle_maint":"YES"}
{"name":"SYSTEM","default_ts":"SYSTEM","temp_ts":"TEMP","common":"NO","oracle_maint":"YES"}
{"name":"GSMCATUSER","default_ts":"SYSTEM","temp_ts":"TEMP","common":"NO","oracle_maint":"YES"}
{"name":"XS$NULL","default_ts":"SYSTEM","temp_ts":"TEMP","common":"NO","oracle_maint":"YES"}
{"name":"MDDATA","default_ts":"SYSTEM","temp_ts":"TEMP","common":"NO","oracle_maint":"YES"}