jackson库收发json格式数据和ajax发送json格式的数据

一、jackson库收发json格式数据

jackson库是maven仓库中用来实现组织json数据功能的库。

  1. json格式

    json格式一个组织数据的字符文本格式,它用键值对的方式存贮数据,json数据都是有一对对键值对组成的,键只能是字符串,用双引号包括;值可以是字符串,数字,布尔表达式,数组等,键值对之间用逗号隔开,一个大括号包括所有的键值对就组成了一个完整的json数据,也可以一个中括号包裹多个大括号,就代表一个json格式数据的数组。

    javascript 复制代码
    {
    	"name"="王昭君",
    	"task"="出塞",
    	"age"=15
    }
  2. ObjectMapper类

    ObjectMapper类就是jackson库中可以用来组织json数据的类,它用两个方法,一个方法(readValue)将json数据实例化成一个类,一个方法(writeValue)将一个类转换成json数据。

    • readValue方法
       这个方法需要传入两个参数,一个http请求req的inputStream或者req的reader(使用reader要确保发过来的http请求中设置了charset键值对),还有一个就是定义好的对应json格式的类.class;
    1. readValue会读取http请求的json格式块
    2. 将读取到的json格式块转换成类似Map的数据结构
    3. 用json中的键值在传入的类的class中寻找同名的类属性,找到后就将对应值赋值给这个属性。如果json数据中有键值没有在类中找到同名的属性,服务器回直接返回一个500状态码的出错页面,如果类中有json数据中没有的属性,这个属性被赋值为null
    4. 赋值完后就实例化出了一个对象,这个对象的所有属性值一一对应json格式的键值对。
    • writeValue方法
      writeValue也有两个参数,一个是resp的getWriter或者getOutPutStream,(使用Writer时需要在使用之前先设置resp的header的charset,避免使用了错误的字符集),另一个是之前以及实例化好了的类对象或者类对象数组。
      writeValue会将每个传入的对象根据属性名:属性值的方式构造成json格式数据,一个对象对应一个json对象,传入对象数组就会构造多个json数据对象,每个json对象用大括号包裹,用逗号分割,再用一个中括号将所有大括号包裹起来。

二、使用ajax发送body为json格式的http请求

ajax是js的jquery库中的一个构造http请求的方法,其中ajax也是通过键值对来构造http请求的,ajax的参数就是一个js对象,这个对象中必须要有和http数据包的各种键值对,url表示网址,type或者method表示方法,data表示body部分。

所以data的值必须是一个json格式的变量。

  • js的对象和json格式非常像,js的键默认就是字符串形式,所以为了构造一个json格式的body,首先就要将body中的键值对构造成一个js对象。
  • 构造好对象之后,使用js的JSON的stringify方法,传入上面构造的js对象,stringify方法就会返回一个json格式的数据。
  • 将这个数据作为data的值即可

    至于为什么不用body作为构造http请求body部分的键值?这是因为ajax还有个获取发送的http请求的http响应的功能,也就是success键值对,这个success的值是一个函数,这个函数的传入的参数body就是返回的响应的body。如果返回响应的body有多个json对象,success函数的参数body就是一个数组。
相关推荐
豆苗学前端2 分钟前
面试复盘:谈谈你对 原型、原型链、构造函数、实例、继承的理解
前端·javascript·面试
Crystal32812 分钟前
Git 基础:生成版本、撤消操作、版本重置、忽略文件
前端·git·github
lichenyang45313 分钟前
React 组件通讯全案例解析:从 Context 到 Ref 的实战应用
前端
姓王者19 分钟前
chen-er 专为Chen式ER图打造的npm包
前端·javascript
青莲84319 分钟前
Android Jetpack - 2 ViewModel
android·前端
崽崽的谷雨23 分钟前
react里ag-grid实现树形数据展示
前端·react.js·前端框架
栀秋66624 分钟前
就地编辑功能开发指南:从代码到体验的优雅蜕变
前端·javascript·代码规范
国服第二切图仔26 分钟前
Electron for 鸿蒙PC项目实战案例 - 连连看小游戏
前端·javascript·electron·鸿蒙pc
社恐的下水道蟑螂33 分钟前
深度探索 JavaScript 的 OOP 编程之道:从基础到进阶
前端·javascript·架构
1_2_3_35 分钟前
前端模块联邦介绍
前端