当前位置: 首页 > news >正文

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

相关文章:

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

一、jackson库收发json格式数据 jackson库是maven仓库中用来实现组织json数据功能的库。 json格式  json格式一个组织数据的字符文本格式,它用键值对的方式存贮数据,json数据都是有一对对键值对组成的,键只能是字符串,用双引号包…...

ubuntu安装和卸载CLion

安装 在https://www.jetbrains.com/clion/download/#sectionlinux下载相应版本的安装包,解压之后,找到解压文件夹中的bin文件夹运行./clion.sh 卸载 使用sudo rm -rf删除以下内容;并把刚刚解压的文件删掉 ~/.config/JetBrains ~/.local/s…...

Petrel解释二维浅地层数据

Petrel是斯伦贝谢开发的一款地质解释和建模软件,有点像地理信息系统的ArcGIS,主要用于数据分析和展示。它不是用来处理原始数据的,而是集成各种处理后的结果数据进行特征分析和目标拾取。当然,它也能读取原始数据,比如…...

分布式任务调度平台XXL-JOB使用

说明:分布式任务调度平台XXL-JOB,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用(官方语)。 本文介绍使用XXL-JOB实现定时执行代码,可用于项目中…...

自考本科汉语言文学专业真的太难了吗

自考本科汉语言文学专业的难度和就业前景都需要综合考虑。目前,自考汉语言文学专业通过率是比较高的,与其他专业比较,难度会低一些,主要考验考生的记忆能力。 自学考试汉语言文学难度怎么样 本科自学考试汉语言文学难度还是比较简…...

STM32CubeMX之freeRTOS信号量

队列可以传输数据,任务之间和任务和中断之间,消息队列用来传数据,占用时间也长 但哦我们有时候只需要传递状态,只需要一个数值表示 如果我们屏幕按固定刷新,就会很消耗资源,如果我们数据变化了&#xff0…...

react-spring,一个react的动画库的使用

介绍 React Spring 是一个 spring physics based animation library 用于 React。它可以轻松地在 React 中实现弹性、渐变等动画效果。 使用 安装依赖: 使用npm: npm install react-spring 使用yarn: yarn add react-spring 导入和使用&a…...

Python中的lambda函数

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! Python中的lambda函数 在Python中,我们使用lambda关键字来声明一个匿名函数, 这就是为什么我们将它们称为“lambda函数”。 匿名函数是指没有声明函数名称的函数。 尽管它们在语法上看起来不同&a…...

Ajax入门

文章目录 axios体验axios-查询参数常用请求方法数据提交 axios错误处理 axios体验 引入axios库 使用axios语法 axios({url: 目标资源地址 }).then((result)>{// 对服务器返回的数据做后续处理 })完整实例 <!DOCTYPE html> <html lang"en"><head&g…...

MapReduce基础原理、MR与MPP区别

MapReduce概述 MapReduce&#xff08;MR&#xff09;本质上是一种用于数据处理的编程模型&#xff1b;MapReduce用于海量数据的计算&#xff0c;HDFS用于海量数据的存储&#xff08;Hadoop Distributed File System&#xff0c;Hadoop分布式文件系统&#xff09;。Hadoop MapR…...

位运算符让人反胃

A60 B13 二进制下 A00111100 B00001101 &&#xff08;同1为1&#xff09; A00111100 & B00001101 X00001100 X12 |&#xff08;有1为1&#xff09; A00111100 | B00001101 X00111101 X61 ^&#xff08;不同为1&#xff09; A00111100 ^ B00001101 X00110001 X49 ~&…...

selenium环境搭建

文章目录 1、下载谷歌浏览器2、下载谷歌驱动 1、下载谷歌浏览器 浏览器下载完成后&#xff0c;在任务管理器中禁止浏览器的自动更新。因为驱动版本必须和浏览器一致&#xff0c;如果浏览器更新了&#xff0c;驱动就用不起了。 2、下载谷歌驱动 谷歌驱动需要和谷歌浏览器版本…...

Python-OpenCV中的图像处理-霍夫变换

Python-OpenCV中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行&#xff0c;如果要检测的形状可以用数学表达式描述&#xff0c;就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使…...

最强自动化测试框架Playwright(10)- 截图

截图 捕获屏幕截图并将其保存到文件中&#xff1a; page.screenshot(path"screenshot.png")可将页面截图保存为screen.png import osfrom playwright.sync_api import Playwright, expect, sync_playwrightdef run(playwright: Playwright) -> None:browser p…...

SQL常见命令语句

1.连接数据库 mysql (-h IP) -u root -p 密码2.查看数据库 show databases3.使用数据库 use db_name4.查看表 show tables [from db_name]5.查看表结构 desc tb_name6.创建、删除、选择数据库 create database db_namedrop database db_nameuse db_name7.数据类型 参考链…...

Android Framework解析——WMS原理

作者&#xff1a;bobby_developer 1. WMS原理&#xff1a;WMS角色与实例化过程 window:它是一个抽象类&#xff0c;具体实现类为 PhoneWindow &#xff0c;它对 View 进行管理。Window是View的容器&#xff0c;View是Window的具体表现内容&#xff1b; windowManager:是一个接…...

python编辑器安装与配置,python用哪个编辑器好用

大家好&#xff0c;给大家分享一下python编辑器pycharm安装教程&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 哪些python的编程软件值得推荐&#xff1f; 编写python源代码的软件.首推的Pycharm。 PyCharm用于bai一般IDE具备的功能&…...

如何使用ElasticSearch存储和查询数据

1. 引言 在大多数的场景里&#xff0c;存储数据都是用MySQL这类关系型数据库&#xff0c;这类数据库的特点是数据存储安全性和一致性高&#xff0c;可以用于事务操作&#xff0c;但是随着数据量的增加&#xff0c;查询的速度也会随之降低&#xff0c;并且其扩展能力有限&#x…...

谈谈对Spring MVC的理解

问题分析&#xff1a; SpringMVC 是一种基于 Java 语言开发&#xff0c;实现了 Web MVC 设计模式&#xff0c;请求驱动类型 的轻量级 Web 框架。 SpringMVC采用了 MVC 架构模式的思想&#xff0c;通过把 Model&#xff0c;View&#xff0c;Controller 分离&#xff0c;将 Web 层…...

Shopify平台Fulfillment业务模块升级

上图是销售订单、发货单与配送之间的关系图&#xff0c;销售订单可以创建多个发货单&#xff0c;多个发货单(不同销售订单)可以合并在一个配送订单进行发货 接口请求错误记录: 1. The api_client does not have the required permission(s). 2. Required parameter missing or…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...