Dex*_*ter 2 javascript ajax jquery json
我正在尝试获取一个字典对象,该对象在服务器端转换为json对象(以及正确的内容类型标题),但由于某种原因,即使我可以访问部分数据,其他部分也不显示up和jquery中的json对象的长度等于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();
}
});
Run Code Online (Sandbox Code Playgroud)
我通常会使用此代码获取警报框,并且json [0]按预期打印出99.但是json.length是"未定义的".所以在某种意义上,json返回是正确的,但我的代码不会检测它并使用它.
当我直接进入我的ashx页面,我的json数据被打印在屏幕上时,我得到了这个json对象:
{"id":1,"json":[5,10,15,20],"0":"99"}
Run Code Online (Sandbox Code Playgroud)
只是一个示例json输出.那怎么来json.length不是3 ???
更新:所以我改变了我的asp.net代码,从Dictionary到List,然后添加了相同的值.突然间,长度现在正在发挥作用.?!?!?!所以对象在javascript中没有长度?
对象没有长度属性,除非您给它们一个.数组有,但数组是[]没有创建的{}.
如果你想知道一个对象有多少属性,你必须循环它们并计算它们:
var count = 0;
for (var foo in bar) {
if (bar.hasOwnProperty(foo) {
count++;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13103 次 |
| 最近记录: |