您的位置:首页 > Web前端 > JQuery

asp.net jquery ajax处理json数据

2012-05-05 17:24 295 查看
纠结了一上午的问题。。。。。把网上的东西整理一下。

asp.net 使用jquery ajax异步加载json数据有两种实现方式,

var obj = {
name:"战士",
age:"100"
}

一、dataType为"text",使用eval解析成json

$.ajax({
type: "post",
url: url,//返回json数据的地址
dataType: "text",
success: function (msg) {

var d = eval("(" + msg + ")");
alert(d.name);//返回值 战士
}

})
二、dataType为json

$.ajax({
type: "post",
url: url,//返回json数据的地址
dataType: "json",
success: function (msg) {

alert(msg.name);//返回值 战士
}

})

对于第二种方式返回的json数据格式必须为

var obj = {
“name”:"战士",
"age":"100"
}

json格式的数据都必须加引号这个引号才是我真正纠结一上午的问题。

同样这种格式的json也适用于第一种方式,所以建议大家以后写json数据时,养成加"引号"的习惯吧。

对于为什么必须加引号网上有这样一段话,也不清楚是不是真的。

不加引号的写法在js脚本和jquery 1.4之前的版本都是没有问题的。因为在1.3及更早版本中,jQuery通过javascript的eval方法来解析json对象。在1.4中,jQuery使用了更严格的方法来解析json。所有的内容都必须使用双引号。

我没具体看jquery代码,所以不清楚是否正确。

备注:

服务器返回json数据时

Response.ContentType = "text/plain";

这句代码不指定同样可以成功加载json数据,json数据可看成txt文本文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: