2016-06-10 2 views
-3

У меня есть скрипт, который запрашивает базу данных и выводит код json с результатами.
javascript берет это и сохраняет в переменной, используя метод jQuery.parseJSON, а затем заполняет текстовое поле для автозаполнения.
Все работает отлично, если я возвращаю менее 30 строк в запросе базы данных.
Похоже, что метод jQuery.parseJSON терпит неудачу, когда я передал ему больше данных.jQuery.parseJSON перестает работать, когда передано больше данных

Как изменить код, чтобы он смог разобрать больше данных?

Благодарим за помощь.

JSON Код:

{ 
    "display":true, 
    "url":"http://project-url", 
    "autoComplete": 
    [ 
     { 
      "value":"1", 
      "desc":"Ford", 
      "model":"Edge", 
      "label":"1 Ford Edge" 
     }, 
     { 
      "value":"2", 
      "desc":"Toyota", 
      "model":"Camry", 
      "label":"2 Toyota Camry" 
     }, 
     { 
      "value":"3", 
      "desc":"Honda", 
      "model":"Accord", 
      "label":"3 Honda Accord" 
     }, 
     { 
      "value":"4", 
      "desc":"Honda", 
      "model":"Civic", 
      "label":"4 Honda Civic" 
     } 
    ] 
} 

Javascript Код:

var data = $.parseJSON(jsonVar); 

$('#value-input').autocomplete(
{ 
    source: data.autoComplete, 
    minLength: 3, 
    select: function(event, ui) 
    { 
     $('#desc-input').val(ui.item.desc); 
    } 
}); 
+1

Пожалуйста, отправьте фрагменты кода. –

+0

'jQuery.parseJSON' не имеет такого ограничения. Сценарий, запрашивающий базу данных, должен генерировать недопустимый JSON. Возможно, проблема с кодировкой символов. – Barmar

ответ

0

без кода мы можем только делать предположения, в этом случае Jquery.ParseJSON поддерживают большие данные, вероятно, проблема заключается в JSON, возможно, какой-то персонаж бросает вызов json или что-то, что не связано с размером строк, которые возвращают базу данных.

Вы можете проверить JSON here

вы можете включить JSON, которые производят ошибку? или вы можете проверить json в ссылке, которую я предоставил выше, чтобы проверить, не проблема в json?

+0

Да, я использовал этот веб-сайт проверки, прежде чем опубликовать вопрос и дал мне действительный формат JSON. Если я использую менее 30 элементов, он работает. Больше этого не работает. – user3216926

+0

Json, который производит ошибку, совпадает с тем, что вы опубликовали в вопросе? – Ronald

+0

Да, но с большим количеством элементов, например, еще 150. Но когда я подтвердил, что JSON возвращает действительный JSON. – user3216926

0

Проблема заключалась в том, что данные поставляются с линией разрыва в одном из ее элементов. Номер 2, линия разрыва между значение и desc элементы. Это был действительный формат JSON, но jQuery по какой-то причине ему не нравится. Я просто удаляю линию прерывания, и это работает. Спасибо, Рональд!

{ 
    "display":true, 
    "url":"http://project-url", 
    "autoComplete": 
    [ 
     { 
      "value":"1", 
      "desc":"Ford", 
      "model":"Edge", 
      "label":"1 Ford Edge" 
     }, 
     { 
      "value":"2 

      ", 
      "desc":"Toyota", 
      "model":"Camry", 
      "label":"2 Toyota Camry" 
     }, 
     { 
      "value":"3", 
      "desc":"Honda", 
      "model":"Accord", 
      "label":"3 Honda Accord" 
     }, 
     { 
      "value":"4", 
      "desc":"Honda", 
      "model":"Civic", 
      "label":"4 Honda Civic" 
     } 
    ] 
} 
Смежные вопросы