это мой ответ JSON от сервера: -
{
"Details": [
{
"ID": 234872,
"Name": "asdfg",
"Address": "hasgdkjfgsjaf,asfuysdfg",
"Email": "",
"Mobile": "",
"Profile": "gwekjrg ",
"Amt": 0,
"Date": ""
}
]
}
это мой код js, который я написал для его анализа и использования в моем приложении:
function getDetail(madeUrl) {
$.ajax({
url: madeUrl,
type : "GET",
dataType : "json",
contentType: "application/json",
success: function(msg) {
$("#detail tr").remove();
var searchResponse = msg.Details;
var html;
$.each(searchResponse, function(index, data) {
html = '<tr><td>' + data.Name + '</td> <td>' + data.Amt + '</td></tr>' + data.Profile + '</td></tr>' + data.Date + '</td></tr>';
$("#detail").append(html);
});
$('#report').fadeIn();
},
error: function (xhr, ajaxOptions, thrownError) {
alert("errorstatus: " + xhr.status + " ajaxoptions: " + ajaxOptions + " throwError: " + thrownError);
},
complete : function() {
}
});
}
но он выдает ошибку, как неспособную разобрать строку JSON. Невозможно выяснить причину. Любая помощь?
Если у вас есть сообщение unparsable JSON, это означает, что каким-то образом JSON не рассматривается как действительный JQuery.
Разумеется, я удалил бы dataType и contentType из вызова ajax (по умолчанию тип данных "Intelligent Guess", что означает, что jquery автоматически проанализирует JSon, если он обнаружит его или отправит текст в противном случае) и добавьте следующую строку в начале функции успеха:
alert(msg === Object(msg)?"json received:\n"+JSON.stringify(msg):"text received:\n"+msg);
Попробуйте этот код. Он отлично работает для меня. Надеюсь, это будет полезно для вас. Пожалуйста, дайте мне знать. Благодарю.
Html:
<div id="detail"></div>
Автор сценария:
var j ='{"Details": [{"ID": "234872","Name": "asdfg","Address": "hasgdkjfgsjaf,asfuysdfg","Email": "","Mobile": "","Profile": "gwekjrg ","Date": ""}]}';
var json = $.parseJSON(j).Details;
$(json).each(function(i,val){
$.each(val,function(k,v){
console.log(k+" : "+ v);
$("#detail").append(k+" : "+ v + " <br />");
});
});
Демо-URL:
JSON