Я использую jQuery для вызова asmx и возврата некоторых данных. Я звоню вот так
function getRequestInfo(event) {
var id = $('#<%= RequestDaysId.ClientID %>').val();
var formattedId = "{'id': '115'}";
$.ajax({
type: "Post",
url: "services/VacationServices.asmx/GetVacationInfo",
data: "{'id': '" + id + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
processdata: true,
success: function(data) {
$('#<%=Note.ClientID %>').val(data.Note);
$('.pendingrequestinfo').show().fadeIn(2000);
},
error: function(result, errortype, exceptionobject) {
$('.failureMessage').fadeIn(2000).fadeOut(2000);
}
})
};
Кажется, все работает нормально, я установил точку останова в своей функции успеха, проверил объект данных и увидел это.
"{"Note":"this is a note","dayInfo":[{"ShortDate":"3/4/2010","DayType":"Vacation","HalfDay":""},{"ShortDate":"3/5/2010","DayType":"Vacation","HalfDay":""}]}"
Проблема возникает, когда я пытаюсь получить значения из JSON. Если я делаю что-то вроде data.Note, я получаю неопределенный обратно.
Уже поздно, сегодня суббота, и я занимался этим весь день, я уверен, что хотел бы получить толчок в правильном направлении, когда дело доходит до анализа моего JSON.
EDIT:
Я использую Asp.net и JavaScriptSerializer.Serialize () для создания JSON. Когда я устанавливаю точку останова и проверяю объект «data», он, похоже, имеет свойство d, которое содержит строку, которая должна быть JSON.
ДРУГОЕ РЕДАКТИРОВАНИЕ:
Если я сделаю что-то подобное в моем успехе
$('#<%=Note.ClientID %>').val(data.d.[0]);
Я получаю {открывающую фигурную скобку. Я предполагаю, что получаю строку вместо JSON, но похоже, что это противоречит тому, что API jquery сообщает о возвращаемом значении, когда тип данных установлен в JSON.
Спасибо, ребята.
Jim