前后台对接时JSON的处理

版权声明:哼!坏人!这是我辛辛苦苦码的! https://blog.csdn.net/DurianPudding/article/details/84036491

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?

其实现在一般都需要转换啦

扫描二维码关注公众号,回复: 5275717 查看本文章

猜你喜欢

转载自blog.csdn.net/DurianPudding/article/details/84036491