jquery的get,post等方法回调函数会自动把返回json格式的data转化为对象吗?

我服务器用express框架的res.json()响应,传入的参数是{code:'1',msg: '操作失败'},这个方法把对象转化为json后返回,而在前端,把jquery的ajax方法的回调函数传入data,确可以直接输出data.code这种对象属性?
是不是说jquery已经自动转化json为对象了,那如果格式不符合键值对的返回数据呢?

6个回答

配置dataType为json会自动帮你将回到中的参数转为json对象,但是你你需要返回标准json字符串,就你贴出来这个是会报错的,以为内jq1.4+以上用的JSON.parse来转换,怪异模式会报错

jQuery dataType指定为json的问题

Spotlight_mar
Spotlight_mar 我刚刚试过了,jquery自动识别出json格式,并转化为对象了,而且是在我响应头没有设置MIME的情况下自动识别的,好厉害啊
3 年多之前 回复

这个和你传的数据和ajax设置的接收数据格式有关吧;如果ajxa中的dataType(支持的数据类型:"xml" "html" "text" "script" "json" "jsonp")你设置的是 html ,你返回json字符,估计直接data.code是拿不到数据的。
PS : 据了解dataType的默认值是jQuery 智能判断的,你可以换几个类型试试看。

Spotlight_mar
Spotlight_mar 我刚刚试过了,jquery自动识别出json格式,并转化为对象了,而且是在我响应头没有设置MIME的情况下自动识别的,好厉害啊
3 年多之前 回复

用了JQ 你可以用 JSON.pase() 或JSON.stringfiy() 来转换json字符串 和json对象

和ajax设置的接收数据格式有关,
ajxa中的dataType设置成 "json"时,返回数据会直接转换为json对象。
此时,如果返回数据不是标准json格式,会报错。

Spotlight_mar
Spotlight_mar 我刚刚试过了,jquery自动识别出json格式,并转化为对象了,而且是在我响应头没有设置MIME的情况下自动识别的,好厉害啊
3 年多之前 回复

可以先去json.cn 检测一下你返回的是不是json,然后在通过jquery的ajax进行获取处理,在ajax的时候使用dataType:"json",就会帮你转换了。

Spotlight_mar
Spotlight_mar 我刚刚试过了,jquery自动识别出json格式,并转化为对象了,而且是在我响应头没有设置MIME的情况下自动识别的,好厉害啊
3 年多之前 回复

默认不会,使用 JSON.pase()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问