Я создал следующий массив JSON :

[ { "nome": "Aldo Maria", "indirizzo": "Viale Europa 1", "telefono": "3397889034" }, { "nome": "Maria13", "indirizzo": "Viale Europa 1", "telefono": "3397889034" } ] 

и у меня есть файл Javascript, в котором я хочу циклически перевести два элемента этого массива. Я хочу сделать это с помощью метода jquery ajax, описанного здесь .

Другими словами, я должен был использовать следующий синтаксис:

$ (Селектор) .getJSON (URL, данные, успех (данные, статус, XHR))

Я пытаюсь применить это и записал следующий фрагмент в мой файл javascrpt, где я хочу циклически преобразовать элементы массива JSON, чтобы отобразить таблицу, в которой пользователь получает данные об имени, адресе и номере телефона другого люди):

function validateTelefono () {setTimeout (function () {

  var data = JSON.parse(data); $.getJSON("I wrote the patthern of the JSON file here", function(){ for (var i=0; i {amp}lt; data.length; i  ){ $("#tbody").append("{amp}lt;tr{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.nome[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.indirizzo[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.telefono[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;/tr{amp}gt;"); } ); 

Для полноты, это весь код:

 function validateTelefono() { console.log("function validateTelefono has been activated"); if ($("#inlineFormInputTelefono").val() == "") { $("#errorLogTelefono").show(); } else { $("#errorLogTelefono").hide(); $("#cercaTelefono").prop("disabled", true); $("#tbody").empty(); setTimeout(function () { var data = JSON.parse(data); $.getJSON( "D:Unknownarray.json", //success function(){ console.log(data); for (var i=0; i {amp}lt; data.length; i  ){ $("#tbody").append("{amp}lt;tr{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.nome[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.indirizzo[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data.telefono[i]   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;/tr{amp}gt;"); } } ); $("#tabella").show(); $("#cercaTelefono").prop("disabled", false); }, 1000); } } 

Открывая страницу в браузере, я получаю:

Uncaught SyntaxError: неожиданный токен u в JSON в позиции 0 в JSON.parse ()

Это относится к следующей строке кода:

  var data = JSON.parse(data); 

Я предполагаю, что ошибка — это данные в скобках.

Что я должен написать вместо «данных» ? Или есть какая-то другая причина, почему метод Jquery не работает?

          • ПРОБЛЕМА РЕШЕНА — — — — — -{amp}gt;

1) Я удалил следующую строку кода и сообщение об ошибке выше исчезло (спасибо за предложение):

 var data = JSON.parse(data); 

Я получил эту другую ошибку вместо того, чтобы сделать это:

введите описание изображения здесь

Это было вызвано синтаксисом url в параметре url метода getJSON : весь путь ( «D: Unknown array.json» ) не был распознан, поскольку он не находится «внутри» папки, в которой находится мой находится файл javascript («Неизвестно»); вместо этого он ссылается на внешнюю папку («D»). другими словами, я отредактировал URL следующим образом:

 "array.json" 

« array.jason » находится в той же папке файла javascript («Unknown»), в которой он использовался. Таким образом, правильный синтаксис всего фрагмента следующий:

 $.getJSON( "array.json", function(data){ for (var i=0; i {amp}lt; data.length; i  ){ $("#tbody").append("{amp}lt;tr{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].nome   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].indirizzo   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].telefono   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;/tr{amp}gt;"); } } ); 

Не нужно анализировать как JSON, потому что он уже находится в формате JSON. Но не забывайте, что запрос возвращает массив, поэтому (учтите, что data.key [i] изменится на data [i] .key):

  $.getJSON("URL-TO-JSON", function(data){ for (var i=0; i {amp}lt; data.length; i  ){ $("#tbody").append("{amp}lt;tr{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].nome   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].indirizzo   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;td{amp}gt;"   data[i].telefono   "{amp}lt;/td{amp}gt;"); $("#tbody").append("{amp}lt;/tr{amp}gt;"); } }); 

Ошибка Uncaught SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse () вызван путем к файлу json. Вы должны написать это как \ потому что инициирует escape-последовательность. Итак, вы в настоящее время пытаетесь избежать U в Unknown .