Я пытаюсь получить объект словаря, который преобразуется в объект json на стороне сервера (вместе с правильным заголовком типа содержимого), но по какой-то причине, хотя я могу получить доступ к части данных, другие части не и json объект в jquery имеет длину, равную 0.
Вот мой вызов jquery:
$.ajax({
type : "POST",
url : cl._url,
//data : 'text='+text,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType : "json",
error : function(XHR, status, error) {
alert("There was an error processing the request.\n\n"+XHR.responseText);
},
success : function(json){
if (!json.length) {
alert('There are no incorrectly spelled words...'+json[0]+ ' ' + json.length);
} else {
// highlight bad words
}
cl.$container.html(html);
// execute callback function, if any
(callback != undefined) && callback();
}
});
Я обычно получаю окно с этим кодом, и json [0] выводит 99, как и ожидалось. Но json.length не определен. Таким образом, в некотором смысле возвращенный json верен, но мой код не обнаружит его и не будет его использовать.
Когда я перехожу прямо на свою страницу Ashx, где мои данные JSON печатаются на экране, я получаю этот объект JSON:
{"id":1,"json":[5,10,15,20],"0":"99"}
Просто пример вывода JSON. Так почему же json.length не равен 3 ???
ОБНОВЛЕНИЕ: поэтому я изменил свой код asp.net с словаря на список, а затем добавил те же значения. И вдруг длина функционирует сейчас. ?!?!?! То есть объекты не имеют длины в javascript?