Ошибка синтаксического анализа JSON с использованием JQuery-1.7.1.min.js

Я использую DataTable 1.7.5 вместе с JQuery-1.7.1.min.js и получаю ОШИБКУ синтаксического анализа JSON. При просмотре нескольких онлайн-форумов было предложено обновить плагин валидатора JQuery-1.5.1.min.js, но ничего о валидаторе JQuery-1.7.1.min.js. Есть ли у кого-нибудь предложения по этой проблеме?

Table HTML:
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example" >
                    <thead>
                        <tr>
                            <th>#</th>                              
                            <th></th>
                            <th>Name</th>
                            <th>Shpr</th>
                            <th>Org</th>
                            <th>Cne</th>
                            <th>Dest</th>
                            <th>Dep Dt</th> 
                            <th>LR No</th>
                            <th>Asset No</th>
                            <th>Curr Dt</th>
                            <th>Spd km/h</th>
                            <th>Waypoint1</th>
                            <th>Waypoint2</th>
                            <th>SDA</th>
                            <th>DETA</th>   
                            <th>AMC</th>                                                        
                        </tr>
                    </thead>
                    <tbody>

                    </tbody>
</table>

Javascript:

var oTable = $('#example').dataTable({

                "aLengthMenu" : [[-1, 10, 25, 50, 100], ["All", 10, 25, 50, 100]],
                "iDisplayLength" : -1,
                "bProcessing": true,
                "bJQueryUI": true,
                "bAutoWidth": false,
                //"sScrollY": "300px",
                "sPaginationType": "full_numbers",
                "sAjaxSource": "ReportAction.do?process=home",
                "bDeferRender":true,
                "sDom": 'T<"clear"><"H"lfr>t<"F"ip>',
                "oTableTools": {
                    "sSwfPath": "<%=localrequestedURL %>media/swf/copy_csv_xls_pdf.swf"
                }       
            });

Данные JSON:

result = session.createSQLQuery(sql_homepage).list();
String final_data = gson.toJson(result);
final_message = "{\"aaData\":"+final_data+"}";

1. Переменная sql_homepage относится к запросу на выборку в базе данных. 2. Переменная final_message передается классу действия, который передает данные в JSP.


person Arindam Das    schedule 27.01.2014    source источник
comment
Есть ли в вашем JSON синтаксическая ошибка? Возможно, это хорошее место для начала.   -  person Alex Wayne    schedule 27.01.2014
comment
Нет, в JSON нет синтаксической ошибки   -  person Arindam Das    schedule 27.01.2014
comment
разместите свои данные json или проверьте свои данные json здесь json.parser.online.fr   -  person Karthick Kumar    schedule 27.01.2014


Ответы (1)


У меня была такая же проблема, и это было от невидимого персонажа, который был сохранен в базе данных. Лучше всего использовать валидатор json, чтобы узнать, где находится ваша ошибка. Я использовал вот это: http://www.freeformatter.com/json-validator.html и этот http://jsonformatter.curiousconcept.com/

datatables очень привередлив в отношении JSON, который он будет анализировать. Я должен быть на 100% идеальным, и мне пришлось создать функцию php для создания строки объекта JSON вместо простого использования функции php json_encode

person pathfinder    schedule 27.01.2014
comment
Приведенная ссылка не помогает понять использование JSON Validator в коде. Можете ли вы объяснить ответ каким-нибудь кодом? - person Arindam Das; 27.01.2014
comment
Вы не помещаете его в свой код, вы помещаете свой JSON в парсер. У них есть инструкции на своих сайтах. Какой бы JSON вы ни возвращали в таблицы данных, либо вставьте его в синтаксический анализатор, либо поместите на страницу, доступную через URL-адрес, и поместите URL-адрес в синтаксический анализатор. - person pathfinder; 27.01.2014