Я создал следующий массив 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 < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data.nome[i] + "</td>");
$("#tbody").append("<td>" + data.indirizzo[i] + "</td>");
$("#tbody").append("<td>" + data.telefono[i] + "</td>");
$("#tbody").append("</tr>");
}
);
Для полноты, это весь код:
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:\Unknown\array.json",
//success
function(){
console.log(data);
for (var i=0; i < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data.nome[i] + "</td>");
$("#tbody").append("<td>" + data.indirizzo[i] + "</td>");
$("#tbody").append("<td>" + data.telefono[i] + "</td>");
$("#tbody").append("</tr>");
}
}
);
$("#tabella").show();
$("#cercaTelefono").prop("disabled", false);
}, 1000);
}
}
При открытии страницы в браузере я получаю:
Uncaught SyntaxError: Неожиданный токен u в JSON в позиции 0
в JSON.parse ()
Это относится к следующей строке кода:
var data = JSON.parse(data);
Полагаю, ошибка - это data в скобках.
Что я должен написать вместо "data" ? Или есть какая-то другая причина, по которой метод Jquery не работает?
- решена задача - - - - - ->
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 < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data[i].nome + "</td>");
$("#tbody").append("<td>" + data[i].indirizzo + "</td>");
$("#tbody").append("<td>" + data[i].telefono + "</td>");
$("#tbody").append("</tr>");
}
}
);