Ответ 1
вызова
var parsed_data = JSON.parse(data);
должно привести к возможности доступа к данным, как вы хотите.
console.log(parsed_data.success);
должен теперь показать '1'
Я использую следующую функцию для отправки формы через jquery ajax
$('form#add_systemgoal .error').remove();
var formdata = $('form#add_systemgoal').serialize();
$.ajaxSetup({async: false});
$.ajax({
type: "POST",
url: '/admin/systemgoalssystemgoalupdate?format=html',
data: formdata,
success: function (data) {
console.log(data);
},
});
Он отлично пишет, но я не могу разобрать ответ, он записывается на консоль следующим образом
{"success":1,"inserted":{"goal_id":"67","goalsoptions_id":"0","user_id":"0","value":"dsfdsaf","created":"2013-06-05 09:57:38","modified":null,"due":"2013-06-17 00:00:00","status":"active","actions_total":"0","actions_title":"sfdgsfdgdf","action_type":"input","points_per_action":"1","expires":"2013-06-11 00:00:00","success":1}}
который, я считаю, является ответом, который я ищу, однако, когда я пытаюсь сделать alert (data.success); или любой из других членов объекта ответа - undefined.
Любые советы, оцененные
вызова
var parsed_data = JSON.parse(data);
должно привести к возможности доступа к данным, как вы хотите.
console.log(parsed_data.success);
должен теперь показать '1'
$.ajax({
type: "POST",
url: '/admin/systemgoalssystemgoalupdate?format=html',
data: formdata,
success: function (data) {
console.log(data);
},
dataType: "json"
});
Представьте, что это ваш ответ Json
{"Visit":{"VisitId":8,"Description":"visit8"}}
Вот как вы анализируете ответ и получаете доступ к значениям
Ext.Ajax.request({
headers: {
'Content-Type': 'application/json'
},
url: 'api/fullvisit/getfullvisit/' + visitId,
method: 'GET',
dataType: 'json',
success: function (response, request) {
obj = JSON.parse(response.responseText);
alert(obj.Visit.VisitId);
}
});
Это будет предупреждать поле VisitId
вы должны проанализировать строку JSON, чтобы стать объектом
var dataObject = jQuery.parseJSON(data);
чтобы вы могли называть его так:
success: function (data) {
var dataObject = jQuery.parseJSON(data);
if (dataObject.success == 1) {
var insertedGoalId = dataObject.inserted.goal_id;
...
...
}
}
Поскольку вы используете $.ajax
, а не $.getJSON
, ваш тип возврата - это обычный текст. вам нужно преобразовать data
в объект JSON.
вы можете сделать это, изменив $.ajax
на $.getJSON
(это сокращенное выражение для $.ajax
, только предварительно настроенное для извлечения json).
Или вы можете проанализировать строку data
в JSON после ее получения, например:
success: function (data) {
var obj = $.parseJSON(data);
console.log(obj);
},
Используйте parseJSON
. Посмотрите doc
var obj = $.parseJSON(data);
Что-то вроде этого:
$.ajax({
type: "POST",
url: '/admin/systemgoalssystemgoalupdate?format=html',
data: formdata,
success: function (data) {
console.log($.parseJSON(data)); //will log Object
}
});