Я пытаюсь отобразить json, который я получаю и разбираю в функции успеха ajax.parse json using ajax success function
То, что я до сих пор:
Ajax:
data = "Title=" + $("#Title").val() + "&geography=" + $("#geography").val();
alert(data);
url= "/portal/getResults.php";
$.ajax({
url: url,
type: "POST",
//pass the data
data: data,
dataType: 'json',
cache: false,
//success
success: function(data) {
alert(data);
}
});
getResults.php (выход JSON):
{
"results": [
{
"DocId": 2204,
"Title": "Lorem ipsum dolor sit amet, consectetur",
"Locations": [
{
"State": "New York",
"City": ""
},
{
"State": "New York",
"City": "New York City"
}
],
"Topics": [
3,
7,
11
],
"PublicationYear": "2011",
"Organization": "New Yorks Times",
"WebLocation": "www.google.com",
"Description": "Lorem Ipsum"
}
],
"TotalMatches": 1
}
Я ожидаю, что результат в данных, чтобы быть из JSON getResults.php, но вместо этого я получаю [object Object].
Я также попытался код ниже, но не получить никакого ответа:
success: function(data) {
var json1 = JSON.parse(data);
alert(json1);
}
попробуйте 'JSON.stringify (data)' – depperm
вы получите объект. при отображении этого с помощью 'alert()' он преобразуется в строку, которая по умолчанию является '[object Object]'. Попробуйте 'console.log()' вместо этого, чтобы увидеть фактический объект. – Sirko
jQuery уже десериализует данные для вас, вам не нужно использовать 'JSON.parse'. Причина, по которой вы видите объект [object Object] ', состоит в том, что вы использовали' alert() 'для его просмотра - это принудительно приводит все типы в строку. Вместо этого используйте 'console.log' –