|
Apex_json : сборка множества json в один общий
|
|||
---|---|---|---|
#18+
Понадобилось для нужд бэкэнда сделать пачку методов, возвращающих clob с джейсоном внутри, решил воспользоваться пакетом apex_json. Всё шло хорошо, пока джейсон не начал разрастаться и содержать большое количество повторяющихся конструкций, например, один из массивов может выглядеть так (количество объектов внутри произвольное): Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
Естественно, каждый объект генерится в цикле, но хотелось бы унести генерацию в отдельную функцию и в цикле дёргать её с нужными параметрами, например, так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
В явном виде возможность сгенерить валидный джейсон объекта вроде как отсутствует - без обёртки в {} апекс сам падает на этапе генерации. Это ладно, обёртку в скобки можно самому обработать. Но вот способа передать один джейсон внутрь другого я не нашёл, за исключением теоретически-ужасных костылей типа заполнения массива плейсхолдерами с их последующей заменой в сгенерированном клобе. Фу-фу. Буду рад любым советами ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2021, 18:00 |
|
Apex_json : сборка множества json в один общий
|
|||
---|---|---|---|
#18+
Использовать SQL? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 11:29 |
|
Apex_json : сборка множества json в один общий
|
|||
---|---|---|---|
#18+
Sah, К сожалению, у меня оракл версии 12.1, а эти классные фишечки появляются в 12.2. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 14:37 |
|
Apex_json : сборка множества json в один общий
|
|||
---|---|---|---|
#18+
Решение проблемы ниже. Оказалось, что моя ошибка в повторной инициализации аутпута во вложенной функции; ну и неправильным было пытаться использовать функцию, вложенная процедура прекрасно пишет в ту же область памяти. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 21:05 |
|
|
start [/forum/topic.php?fid=50&msg=40123460&tid=1873765]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
43ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
104ms |
get tp. blocked users: |
1ms |
others: | 2816ms |
total: | 2986ms |
0 / 0 |