1. 如何判断json字符串还是对象:
json字符串名字有双引号,对象名字没有双引号。
// 对象
var obj = {
name : 'nike'
}
//转化成json字符串
JSON.stringify(obj);
// json字符串
// 名字有双引号
// 输出:{ "name" : "nike" }
2. 如何查看后台返回给我的数据呢
打开控制台,在network–response里面,就会看到{ "name" : nike }
然后在Headers–Response Headers 里面可以看到后台返回的头部
Content-Type是后台标明的数据格式。在项目里按理说应该是json格式,应该显示的是application/json
。
但是后台的小哥哥没有标明json格式,所以这里就显示了默认格式:text/plain;cheaset=UTF-8
,说明是文本格式。这里头部写的什么格式,浏览器接收到就会按照什么格式解析。也就是就算数据是json格式,因为头部写的文本格式,前台就会按文本格式解析。这样前台在接收数据的时候就会有个小bug啦!
那就是:前台需要的是对象格式,但是接收到的是文本格式,怎么办呢?
前台可以处理这个bug,就是用JSON.parse(data)
转换一下,把文本格式的data转换成JSON对象。
举个例子:前台需要访问data对象的name属性。
// 如果后台标明了json格式,jquery可以自动处理数据为json对象
data.name
// 如果后台没标明,头部默认显示文本格式
JSON.parse(data).name
再加一句: Network–Preview是后台传给前台的数据概览。
3. POST时如何确定是否需要JSON转换呢?
今天后台小哥哥说需要我给他传list。但是前台没有list格式,这就又用到了JSON转换。
前台需要做的就是在ajax请求里面将数据转换成JSON字符串:
contentType: 'application/json', // 标明是JSON格式
data: JSON.stringify(data) // 将data转换成JSON字符串
后台需要做的就是加一个注解,用来接收JSON字符串再解析。
4. 如何用JSON处理数据?
就是用我上面写的两种方法,分别适用GET和POST方法。
5. 什么时候用JSON?
其实现在一般都需要转换啦