json解析

哈哈,如果返回http消息头中指定了“Content-Type: application/json”的话,jQuery回调函数中传入的data是直接解析后的json对象,如果不指定Content-Type(就是用默认的),jQuery回调函数中传入的data是string字符串。

 

不看文档没常识。仔细看了jQuery.ajax() 的文档,里面有非常详细的说明。jQuery.ajax()是使用jQuery进行ajax调用的客户端底层函数,提供了丰富的选项,用以控制发送、接收ajax消息的方方面面。其中dataType制定了server回来的数据的类型,是json的话就解析成json对象,是xml的话就解析成xml dom元素,是script的话就执行script脚本,是html的话就parse它,默认dataType是智能选择,说白了就是根据response中的Content-Type决定是应该怎么处理。显然,如果response的header中指定了Content-Type为application/json,就会解析为json对象。

 

另外,解析json应答时,json必须是标准格式的,即key必须带引号,并且是双引号,否则解析出错。

 

jQuery.ajax()是jQuery处理ajax的最底层函数,使用起来最灵活,也就意味着最难用。一般只用一些上层包装函数,包括:

1. jQuery.get()

发送HTTP GET请求,回调函数处理应答

 

2. jQuery.getScript()

发送HTTP GET请求,设置dateType为script,需要server返回script

 

3. jQuery.getJSON()

发送HTTP GET请求,设置dataType为json,需要server返回json数据

 

4. object.load()

类似于jQuery.get(),但这是一个jQuery对象的方法,而非jQuery全局方法,可以直接用一个对象调用load,然后将信息写到这个对象中。

 

5. jQuery.post()

类似jQuery.get(),发送的是HTTP POST请求。

 

服务器端,一般的服务器语言都提供了对json格式和本语言数据结构的序列化和反序列化方法,节省了手工构造严格的json字符串的工作量。

 

在php中,提供了json_encode和json_decode函数,其中json_encode接收任意一个非resource的数据结构,将其转化为严格符合规范的json字符串,对于返回json应答数据非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值