2013-07-09 6 views
6

У меня есть веб-приложение, которое получает данные из строки JSON. JSON в следующем форматеПостроение строки JSON из Oracle DB

{ 
    "contacts": [{ 
     "type": "contact", 
     "name": "John Doe", 
     "contact": 1, 
     "links": ["Spouse", "Friends","Jane Doe","Harry Smith"] 
       }] 
} 

Теперь это выборочные данные. Моя фактическая БД находится в Oracle. Мой вопрос будет заключаться в том, как я могу построить этот JSON из Oracle.

+0

https://forums.oracle.com/thread/2382829 –

+0

http://technology.amis.nl/2011/06/14/creating-json-document-straight-from-sql-query-using-listagg -and-with-clause/ –

+0

С оператором '||'. Просто оставьте только форматирование JSON и сосредоточьтесь на подаче данных. Если вы публикуете свою структуру данных (таблицы, с которых вам нужны эти данные), и покажите нам, что вы уже пробовали, мы можем рассказать вам, как это сделать на самом деле. –

ответ

5

Это лучший способ, с которым я столкнулся: http://ora-00001.blogspot.sk/2010/02/ref-cursor-to-json.html.

Резюмируя:

  • Используйте DBMS_XMLGEN пакет для создания XML из SYS_REFCURSOR.
  • Затем преобразуйте его, используя этот XSLT.

Мне это нравится, потому что нет никакого ручного создания и потому, что у вас есть возможность вернуть XML, пропуская окончательное преобразование.

+0

Пожалуйста, включите в свой ответ соответствующие элементы из своей ссылки, а также объясните их. Если этот сайт когда-либо изменится или будет удален, ваш принятый ответ станет бесполезным для будущих зрителей. – MattD

+0

Это может быть единственный способ, но нужно сказать, что это не очень устойчивый способ. JSON - гораздо более легкая разметка, чем XML. Этот ответ в основном говорит о том, что никто не сделал общедоступным решение для программного представления данных оракула в формате любимого API в мире. – Adamantish

+0

Это фактически неверно. Ответ - это то, что предоставляет общедоступное, программное решение для представления данных Oracle в формате API любимого мира. Если у вас есть лучший ответ, ответьте и заставьте его проголосовать. Даун-голосование по лучшей причине, чем нежелание конкретного решения бросать вызов здравому смыслу. – manadart

Смежные вопросы