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

一、jackson库收发json格式数据

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

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

    {"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就是一个数组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS API for JavaScript 4.x 教程(一) 显示一张地图

了解如何创建和显示带有基本地图图层的地图。 地图包含地理数据层。地图包含一个基本地图层,以及一个或多个数据层(可选)。可以使用地图视图显示地图的特定区域,并设置位置和缩放级别。 本教程将向您展示如何使用地形底图层创建和…

时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1.Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高…

XML学习基础知识归纳(一)

一、XML基本概述 (1)概念:XML是可扩展的标记语言,xml文档的后缀名为 .xml (2)作用:用来用来传输和存储数据,不用于表现和展示数据,这点呢相比于HTML来说是不同的&#…

vue2中实现响应式的原理object.defineproperty+发布定于模式的缺点

缺点: 1 不能监测到新增属性或者删除属性 2 不能检测到根据数组索引替换或新增的值。也无法监测数组索引的变化。 由于object.defineproperty(对象,描述,对象的某个属性)其实是对对象的某个属性进行修改,因…

python函数、运算符等简单介绍3(无顺序)

set&#xff08;集合&#xff09; 集合(set) -> 负责存储【不重复的数据】&#xff0c;并且是【无序存储】 的容器&#xff0c;主要用来去重和逻辑比较 set1 {1,2,3,4,58,7,4,1,2,3,5} print(set1) print(type(set1)) # 输出结果&#xff1a; {1, 2, 3, 4, 5, 7, 58} <…

svn文章四:版本控制策略 - 穿越时光机:SVN版本控制进阶技巧

文章四&#xff1a;版本控制策略 - “穿越时光机&#xff1a;SVN版本控制进阶技巧” 概述&#xff1a;版本控制是SVN的核心功能。本文将深入研究SVN版本控制的进阶技巧&#xff0c;包括标签管理、历史查看、版本回退等&#xff0c;让您成为版本控制的高手。 1. 引言 版本控制…

excel 之 VBA

1、excel和VBA 高效办公&#xff0c;把重复性的工作写成VBA代码&#xff08;VB代码的衍生物&#xff0c;语法和VBA相同&#xff09;。 首先打开开发工具模式&#xff0c;如果没有选显卡&#xff0c;需要手动打开 打开程序编辑界面 快捷键 altF11一般操作 程序调试&#xf…

概率论与数理统计:第二、三章:一维~n维随机变量及其分布

文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…

【Nginx15】Nginx学习:HTTP核心模块(十二)内嵌变量

Nginx学习&#xff1a;HTTP核心模块&#xff08;十二&#xff09;内嵌变量 关于内嵌变量&#xff0c;其实就是 Nginx 开放给我们的在配置文件中可以使用的变量。源码中无非就是替换成真实的代码变量进行操作。这些变量可以帮助我们做很多事情。之前的文章中其实也有不少地方用到…

深度学习关键要素:数据集汇总与分享

引言 在深度学习的应用中&#xff0c;数据被认为是最重要的因素之一。因此&#xff0c;选择一个好的数据集对于深度学习的成功至关重要。在选择数据集时&#xff0c;不仅需要关注数据量的大小、多样性以及质量&#xff0c;还要考虑数据集是否代表了所研究问题的真实情况。本文…

2023国赛数学建模B题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

Python - 读取pdf、word、excel、ppt、csv、txt文件提取所有文本

前言 本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件&#xff0c;并提取所有文本的方法进行分享和使用总结。 可以读取不同文件的库和方法当然不止下面分享的这些&#xff0c;本文的代码主要目标都是&#xff1a;方便提取文件中所有文本的实现方式。 这些库的…

【Spring Boot】夺名连环问(持续更新ing)

Spring的了解与特性 简单介绍&#xff1a;快速开发Spring项目的脚手架。简化Spring应用的初始搭建以及开发过程。 特性 提供了很多内置的Starter结合自动配置&#xff0c;对主流框架的无配置集成、开箱即用。即不需要自己去引入很多依赖。 并且管理了常用的第三方依赖的版本&…

0001nginx简介、相关模型与原理

文章目录 一. 什么是Nginx二. ngnix的一些模型1、nginx的进程模型2、worker的抢占&#xff08;锁&#xff09;机制模型3. nginx事件处理模型 三. nginx加载静态资源的过程 一. 什么是Nginx Nginx是一个高性能HTTP反向代理服务器&#xff0c;以下是nginx的相关能力 反向代理&am…

(力扣)用两个队列实现栈---C语言

分享一首歌曲吧&#xff0c;希望在枯燥的刷题生活中带给你希望和勇气&#xff0c;加油&#xff01; 题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#…

ElasticSearch单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

大模型在金融医疗、生命系统和物理仿真领域的创新应用探索

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 在当今迅速发展的科技领域&#xff0c;大模型技术正日益成为金融医疗、生命系统和物理仿真等领域中的重要工具。2023年6月16日&#xff0c;AI TIME举办的青年科学家大模型专场活动邀请了国防科技大学理学院数学…

VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示

上代码 <el-form-item label"出库单号" prop"ecode" ref"ecode" :rules"rules.ecode"><el-input v-model"queryParams.ecode" placeholder"出库单号和出库箱号至少填写一项" clearable style"width…

【Docker】AUFS、BTRFS、ZFS、储存池详解

洁洁的个人主页 我就问你有没有发挥&#xff01; 知行合一&#xff0c;志存高远。 前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是…

【深入浅出C#】章节 7: 文件和输入输出操作:序列化和反序列化

序列化和反序列化是计算机编程中重要的概念&#xff0c;用于在对象和数据之间实现转换。在程序中&#xff0c;对象通常存储在内存中&#xff0c;但需要在不同的时刻或不同的地方进行持久化存储或传输。这时&#xff0c;就需要将对象转换为一种能够被存储或传输的格式&#xff0…