Я хотел бы получить результаты в 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> "
но с тем же результатом.
Существует ли кто-нибудь, кто может с этим справиться?
вам нужно преобразовать " "
в ' '
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));
});
regexp_replace(to_char(wm_concat(rejectedreason)), '[[:cntrl:]]|\\')
при сборе данных из БД, я определенно буду использовать ваше решение для еще одной проблемы :) Еще раз спасибо С уважением Рудо