#jquery #json
#jquery #json
Вопрос:
Это моя строка JSON:
{"success":true,"docSearch":
[
{"fName":"Sam",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/patient.png",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist",
"deg":"MBBS, BDS, BAMS, BUMS","experience":"3","fees":"3"},
{"fName":"Samanyu",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/regis.jpg",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist, Dermatologist",
"deg":"MBBS, BDS, BAMS, BUMS, BHMS, BYNS",
"experience":"3",
"fees":"3"
}
]
}
Я хочу получить доступ к значениям в jQuery.До сих пор я делал это:
success: function(data,textStatus,jqXHR){
if(data.success){
var img=document.createElement('img');
$(data).each(function(index,item){
$("#ajaxResponse").html("");
$("#ajaxResponse").append("<b>First Name:</b> " data.docSearch[index].fName "<br>");
$("#ajaxResponse").append("<b>Last Name:</b> " data.docSearch[index].lName "<br>");
$("#ajaxResponse").append("<b>Email:</b> " data.docSearch[index].email "<br>");
$("#ajaxResponse").append("<b>Experience:</b> " data.docSearch[index].experience "<br>");
$("#ajaxResponse").append("<b>Fees:</b> " data.docSearch[index].fees "<br>");
img.src=data.docSearch[index].userImage;
$("#ajaxResponse").append(img);
});
}
Если кто-нибудь, читающий это, знает, как получить доступ к строкам JSON, подобным этому, пожалуйста, помогите мне.
Примечание: Эта строка JSON также может содержать 1 значение, например:
{"success":true,"docSearch":
[
{"fName":"Sam",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/patient.png",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist",
"deg":"MBBS, BDS, BAMS, BUMS","experience":"3","fees":"3"}
]
}
РЕДАКТИРОВАТЬ 1:
success: function(data,textStatus,jqXHR){
//doc Name was correct so we have some information to display
if(data.success){
var img=document.createElement('img');
var br=document.createElement('br');
$("#ajaxResponse").html("");
$(data.docSearch).each(function(index,item){
$("#ajaxResponse").append("<b>First Name:</b> " item.fName "<br>");
$("#ajaxResponse").append("<b>Last Name:</b> " item.lName "<br>");
$("#ajaxResponse").append("<b>Email:</b> " item.email "<br>");
$("#ajaxResponse").append("<b>Usernames:</b> " item.username "<br>");
$("#ajaxResponse").append("<b>Experience:</b> " item.experience "<br>");
$("#ajaxResponse").append("<b>Fees:</b> " item.fees "<br>");
img.src=item.userImage;
$("#ajaxResponse").append(img);
$("#ajaxResponse").append(br);
});
}
//display error message
else {
$("#ajaxResponse").html("<div><b>No Record Found!!</b></div>");
}
},
Я добавил тег <‘br’>, чтобы между отображаемым содержимым был разрыв строки, но разрыва строки нет, и он также не отображает 2 изображения. Для первой итерации он просто считывает его и оставляет только так, а для 2-й итерации он отображает изображение. Я хочу, чтобы оба изображения отображали данные 2. Пожалуйста, ПОМОГИТЕ!!
РЕДАКТИРОВАТЬ 2: моя проблема была решена путем сохранения var img=document.createElement('img');
в цикле, чтобы всякий раз, когда он задает путь для изображения, он отображал изображение.
Комментарии:
1. Не могли бы вы сказать мне, что такое ` $ (d)`!!
2. Привет, что
$(d)
здесь? Разве это не должно быть$(data)..
?3. Привет, на самом деле, я использовал JSON.stringfy для проверки строки JSON, поэтому я использовал d там, я провел некоторую отладку, поэтому я использовал d, но я отредактировал его. Если я анализирую JSON, я получаю сообщение об ошибке, и когда я пытаюсь его распечатать, он выдает мне «object Object», поэтому я предполагаю, что jquery проанализировал его автоматически. Это просто заметка для вас, ребята. Если вы можете попытаться решить это, пожалуйста, сделайте, мне это действительно нужно. Я просто хочу получить доступ к данным из JSON, и это может быть 1 строка, 2 строки, 3 строки и т. Д. Вот почему мне нужен массив для доступа к нему.
4. Привет, ваш код работает нормально, проверьте это . Вы добавили
dataType: "json"
в свой ajax?5. Поместите эти
var img=document.createElement('img'); var br=document.createElement('br');
строки в каждый цикл, который должен работать.
Ответ №1:
Вы используете цикл foreach для неправильной переменной. Используйте цикл foreach для data.docSearch
, а не для data
.
var data = {"success":true,"docSearch":
[
{"fName":"Sam",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/patient.png",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist",
"deg":"MBBS, BDS, BAMS, BUMS","experience":"3","fees":"3"},
{"fName":"Samanyu",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/regis.jpg",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist, Dermatologist",
"deg":"MBBS, BDS, BAMS, BUMS, BHMS, BYNS",
"experience":"3",
"fees":"3"
},{"fName":"Sandeep",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/patient.png",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist",
"deg":"MBBS, BDS, BAMS, BUMS","experience":"3","fees":"3"},
{"fName":"Samanyu",
"lName":"Mehra",
"email":"samanyumehra20000@gmail.com",
"mobile":"7859857230",
"userImage":"IMG/regis.jpg",
"address":"412/A Ganesh Nagar 2 gali no.1 Laxmi Nagar Near Ajay cycles, Mona Pg",
"special":"Allergist, Dentist, Anesthesiologist, Cardiologist, Dermatologist",
"deg":"MBBS, BDS, BAMS, BUMS, BHMS, BYNS",
"experience":"3",
"fees":"3"
}
]
}
$(data.docSearch).each(function(index,item){
console.log(item.fName);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>