Как получить строку XML в поле JSON?

0

Я хотел бы получить результаты в jquery datatables через JSON. Страница написана в JSP.

В таблице содержится специальное поле с XML-строкой:

{ 
  "sEcho": 1, 
  "iTotalRecords": "3800", 
  "iTotalDisplayRecords": "3800", 
  "aaData": [ [ "16.12.2013 14:14:55 GMT", 
                "Unknown", 
                "Unknown", 
                "", 
                "26414321279", 
                "ci1387203295280.36875276@czchols2138_te", 
                "<?xml version="1.0" encoding="UTF-8"?> <ExtendedEventContent> <Transport_Failure> <Error>Incomplete data received</Error> <Transport_Error>com.cyclonecommerce.tradingengine.transport.FileNotFoundException: 550 TEST.xml: The system cannot find the file specified. ; command=RETR TEST.xml</Transport_Error> </Transport_Failure> </ExtendedEventContent> ", 
                "" ] ,
               ...

сценарий инициирования datatables:

<script>
  $(document).ready(function() {
    $('#failedDetails').dataTable( {
      "bStateSave": true,
  "bProcessing": true,
  "bServerSide": true,
      "sAjaxSource": "./inc_failed_details_json.jsp",
  "aLengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
      "iDisplayLength": 10,
  "aaSorting": [[ 0, "asc" ]]
 } );

});

Я получаю, конечно, ошибку:

... Данные JSON с сервера не могут быть проанализированы. Это вызвано ошибкой форматирования JSON.

Данные собираются из базы данных Oracle. Я попытался использовать замену для значения XML:

(select replace(max(details), '"', '\"') from cyclone.messageevents where messageoid = m.oid) Details,
 "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <ExtendedEventContent> <Reason> <Event>Messaging.Message.Duplicate.Message</Event> </Reason> </ExtendedEventContent> "

но с тем же результатом.

Существует ли кто-нибудь, кто может с этим справиться?

Теги:
datatables

1 ответ

0
Лучший ответ

вам нужно преобразовать " " в ' ' XML field ' ' в XML field

Я создал jsfiddle для DEMO

var obj1 = {};
obj1.data = "Name"
obj1.xmlData = "<?xml version='1.0' encoding='UTF-8'?> <ExtendedEventContent> <Transport_Failure> <Error>Incomplete data received</Error> <Transport_Error>com.cyclonecommerce.tradingengine.transport.FileNotFoundException: 550 TEST.xml: The system cannot find the file specified. ; command=RETR TEST.xml</Transport_Error> </Transport_Failure> </ExtendedEventContent>"

$(document).ready(function() { 
    $('.test').html(JSON.stringify(obj1));
});
  • 0
    Спасибо, Патель. Хорошее решение. Даже я решил эту проблему с помощью regexp_replace(to_char(wm_concat(rejectedreason)), '[[:cntrl:]]|\\') при сборе данных из БД, я определенно буду использовать ваше решение для еще одной проблемы :) Еще раз спасибо С уважением Рудо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню