json序列化

1、什么是序列化

序列化是将对象转化为字节序列的过程。对象序列化后可以在网络上传输,或者保存到硬盘上。

2、Json在前端的序列化和反序列化。

将对象序列化成json字符串:

 JSON.stringify(json对象);

反序列化:

$.parseJSON(str)

后台能够直接处理的数据格式,是一种经过序列化的键值对数据,比如前端要向后台提交三个参数,分别是a=1,b=2,c=3,那么后台接收到的数据就应该是a=1&b=2&c=3(可以看到其实就是每个“键值对”之间用&连接)。当我们用get方式提交数据时,参数是直接附加到url后面的,即


xxx.xxx这是域名此略.xxx?a=1&b=2&c=3
可以看到?后面的正是后台程序能够直接处理的数据格式,所以get方式提交数据的话,就不需要再对参数进行序列化处理了,直接提交即可。
当我们用post方式提交时,通常我们提交的数据本身就是一个json对象,比如说像这样的:
var data = {a:1, b:2, c:3};
而提交时数据是直接以原始格式存储在body中而不是以键值对的方式附加到url中的,所以后台程序是无法直接识别的,这时候就需要在提交前先把data转换为 a=1&b=2&c=3 的格式再提交,这就是序列化。
当然,如果数据是通过表单提交的,那么不管是post方式还是get,浏览器会自动进行序列化,无需前端js再做任何处理。

举例:

A链接是序列化后的

所以它的接口书写方式是:

--------------------------------------------------------------------------------------------

 B链接是不需要序列化的

所以它的接口书写方式是:

详见此文:https://www.cnblogs.com/andyZhang0511/p/11671713.html

实际应用案例

import qs from 'qs'
import request from '@u/request'

function ComApiUrl(type, urlKeyCode) {
  let url_key = ''
  if (type === '') {
    url_key = '/' + urlKeyCode
  } else {
    url_key = '/' + type + '/' + urlKeyCode
  }
  return {
    url_key: url_key,
    createOne(data) {
      return request({
        url: this.url_key + '/save',
        method: 'post',
        data
      })
    },
    updateOne(data) {
      return request({
        url: this.url_key + '/update',
        method: 'post',
        data
      })
    },
    deleteOne(data) {
      return request({
        url: this.url_key + '/delete',
        method: 'post',
        data: qs.stringify(data)
      })
    }
  }
}
export default ComApiUrl

以上是封装好的一个公共接口

 上面是接口文档中的删除接口,一个项目中肯定有多处需要用到删除功能

    deleteOne(data) {
      return request({
        url: this.url_key + '/delete',
        method: 'post',
        data: qs.stringify(data)
      })
    },

这个/app是参数type,/device是参数urlKeyCode

接口应用方法:

step1:

 step2:

活到老,学到老。 踏实+激情+坚持
原文地址:https://www.cnblogs.com/andyZhang0511/p/12098562.html