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

JSON的处理

1、JSON

  • JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。

  • 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mZk48Gox-1692512629720)(.\img\json回顾.png)]

  • 创建格式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8uKzj8W-1692512629721)(.\img\创建格式.png)]

  • 常用方法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-50VB5HSQ-1692512629721)(.\img\json-常用方法.png)]

2、JSON转换工具的介绍

  • 我们除了可以在 JavaScript 中来使用 JSON 以外,在 JAVA 中同样也可以使用 JSON。

  • JSON 的转换工具是通过 JAVA 封装好的一些 JAR 工具包。

  • 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

  • Jackson:开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。

      1. 导入 jar 包。
      2. 创建核心对象。
      3. 调用方法完成转换。
  • 常用类

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V0760fmv-1692512629721)(.\img\json转换工具-常用类.png)]

  • ObjectMapper常用方法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpvwWvWp-1692512629721)(.\img\json转换工具-objectMapper.png)]

3、JSON转换练习

  1. 对象转 JSON, JSON 转对象。

    /*JSON转换工具的使用*/
    public class ObjectMapperTest {    private ObjectMapper mapper = new ObjectMapper();/*1.User对象转json, json转User对象json字符串 = {"name":"张三","age":23}user对象 = User{name='张三', age=23}*/@Testpublic void test01() throws Exception{//User对象转jsonUser user = new User("张三",23);String json = mapper.writeValueAsString(user);System.out.println("json字符串:" + json);//json转User对象User user2 = mapper.readValue(json, User.class);System.out.println("java对象:" + user2);}
    }
    
  2. Map转 JSON, JSON 转 Map。

    /*2.map<String,String>转json, json转map<String,String>json字符串 = {"姓名":"张三","性别":"男"}map对象 = {姓名=张三, 性别=男}
    */
    @Test
    public void test02() throws Exception{//map<String,String>转jsonHashMap<String,String> map = new HashMap<>();map.put("姓名","张三");map.put("性别","男");String json = mapper.writeValueAsString(map);System.out.println("json字符串:" + json);//json转map<String,String>HashMap<String,String> map2 = mapper.readValue(json, HashMap.class);System.out.println("java对象:" + map2);
    }
    
  3. Map转 JSON, JSON 转 Map。

    /*3.map<String,User>转json, json转map<String,User>json字符串 = {"黑马一班":{"name":"张三","age":23},"黑马二班":{"name":"李四","age":24}}map对象 = {黑马一班=User{name='张三', age=23}, 黑马二班=User{name='李四', age=24}}*/
    @Test
    public void test03() throws Exception{//map<String,User>转jsonHashMap<String,User> map = new HashMap<>();map.put("黑马一班",new User("张三",23));map.put("黑马二班",new User("李四",24));String json = mapper.writeValueAsString(map);System.out.println("json字符串:" + json);//json转map<String,User>HashMap<String,User> map2 = mapper.readValue(json,new TypeReference<HashMap<String,User>>(){});System.out.println("java对象:" + map2);
    }
    
  4. List转 JSON, JSON 转 List。

    /*4.List<String>转json, json转 List<String>json字符串 = ["张三","李四"]list对象 = [张三, 李四]
    */
    @Test
    public void test04() throws Exception{//List<String>转jsonArrayList<String> list = new ArrayList<>();list.add("张三");list.add("李四");String json = mapper.writeValueAsString(list);System.out.println("json字符串:" + json);//json转 List<String>ArrayList<String> list2 = mapper.readValue(json,ArrayList.class);System.out.println("java对象:" + list2);
    }
    
  5. List转 JSON, JSON 转 List。

    /*5.List<User>转json, json转List<User>json字符串 = [{"name":"张三","age":23},{"name":"李四","age":24}]list对象 = [User{name='张三', age=23}, User{name='李四', age=24}]*/
    @Test
    public void test05() throws Exception{//List<User>转jsonArrayList<User> list = new ArrayList<>();list.add(new User("张三",23));list.add(new User("李四",24));String json = mapper.writeValueAsString(list);System.out.println("json字符串:" + json);//json转List<User>ArrayList<User> list2 = mapper.readValue(json,new TypeReference<ArrayList<User>>(){});System.out.println("java对象:" + list2);
    }
    

4、小结

  • **Jackson:**开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。

  • 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

  • 常用类

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NlNr2Eyw-1692512629722)(.\img\json转换工具-objectMapper.png)]

相关文章:

JSON的处理

1、JSON JSON(JavaScript Object Notation)&#xff1a;是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#…...

matlab使用教程(20)—插值基础

1.网格和散点样本数据 插值是在位于一组样本数据点域中的查询位置进行函数值估算的方法。函数值是根据最接近查询点的样本数据点计算的。MATLAB 根据样本数据的结构&#xff0c;可以执行两种插值。样本数据可以形成网格&#xff0c;也可以是分散的。 网格化的样本数据使得插值…...

Python功能制作之简单的3D特效

需要导入的库&#xff1a; pygame: 这是一个游戏开发库&#xff0c;用于创建多媒体应用程序&#xff0c;提供了处理图形、声音和输入的功能。 from pygame.locals import *: 导入pygame库中的常量和函数&#xff0c;用于处理事件和输入。 OpenGL.GL: 这是OpenGL的Python绑定…...

leetcode-5-最长回文串

题目描述 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 示例 1&#xff1a; 输入&#xff1a;s “babad” 输出&#xff1a;“bab” 解释&#xff1a;“aba” 同样是符合题意的答案。 示…...

二、Oracle 数据库安装集

一、CentOS 安装 OCI下载地址 1. 启动 # 1. 登录服务器&#xff0c;切换到oracle用户&#xff0c;或者以oracle用户登录 su - oracle# 2. 打开监听服务 lsnrctl start# 3. 查看Oracle监听器运行状况 lsnrctl status# 4. 以sys用户身份登录 sqlplus /nolog# 5. 切换用户conn 用…...

【Python】Python中的常用函数及用法

目录 输入输出类型转换引用哈希字符串常用操作判断类型查找替换大小写转换文本对齐去除空白字符拆分和连接 列表常用操作增删改查增删改统计排序 元组常用操作 字典常用操作 范围随机数学比较常用函数三角函数数学常量 输入 input()&#xff1a;从键盘等待用户的输入&#xff0…...

基于JavaEE的ssm公司员工信息管理系统的设计与实现

基于JavaEE的ssm公司员工信息管理系统的设计与实现043 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存…...

cornerstoneJS加载图片(base、矩阵)

cornerstoneJS默认加载dicom影像数据&#xff0c;将识别到的dicom数据转换成imageData数据&#xff0c;在界面上展示。故&#xff0c;cornerstoneJS也可直接加载imageData。 imageData数据的data是一个数组&#xff0c;每四个元素代表一个点&#xff0c;四个元素分别表示R、G、…...

3.Trunc截断函数用法

TRUNC函数用于对值进行截断 用法有两种&#xff1a;TRUNC&#xff08;NUMBER&#xff09;表示截断数字&#xff0c;TRUNC&#xff08;date&#xff09;表示截断日期 (1)截断数字 格式&#xff1a;TRUNC&#xff08;n1,n2&#xff09;&#xff0c;n1表示被截断的数字&#xf…...

腾讯云 CODING 荣获 TiD 质量竞争力大会 2023 软件研发优秀案例

点击链接了解详情 8 月 13-16 日&#xff0c;由中关村智联软件服务业质量创新联盟主办的第十届 TiD 2023 质量竞争力大会在北京国家会议中心召开。本次大会以“聚焦数字化转型 探索智能软件研发”为主题&#xff0c;聚焦智能化测试工程、数据要素、元宇宙、数字化转型、产融合作…...

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…...

一文解析HTTP与HTTPS,它们的区别和联系

一文解析HTTP与HTTPS&#xff0c;它们的区别和联系 HTTP和HTTPS之间不同点 尽管HTTP和HTTPS在安全性方面存在差异&#xff0c;但它们仍然共享许多相同的基本特征和功能。这些相同点使得HTTP成为广泛应用的标准协议&#xff0c;并且HTTPS作为更安全的替代方案被广泛采用。HTTP…...

Faster RCNN网络数据流总结

前言 在学习Faster RCNN时&#xff0c;看了许多别人写的博客。看了以后&#xff0c;对Faster RCNN整理有了一个大概的了解&#xff0c;但是对训练时网络内部的数据流还不是很清楚&#xff0c;所以在结合这个版本的faster rcnn代码情况下&#xff0c;对网络数据流进行总结。以便…...

拒绝摆烂!C语言练习打卡第五天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4d…...

关于LambdaQueryWrapper.or()导致错误

这个是原始的代码&#xff0c;到导致一个问题&#xff0c;后面所有的内容&#xff0c;都在这个or的右边&#xff0c;也就是整个查询语句就这一个or&#xff0c;而很明显&#xff08; xxx or xxx&#xff09;and&#xff08;&#xff09;这才是我们要的&#xff0c;所以需要将这…...

Day17-Node后端身份认证-JWT

Day17-Node后端身份验证 一 密码加密 1 MD5加密 创建MD5.js//node提供了一个内置模块crypto用于密码加密 const crypto = require("crypto")module.exports.getMd5 = function(password){const md5...

onvif中imaging setting图像画质总结!

前言&#xff1a; 大家好&#xff0c;今天给大家来分享一篇关于图像质量的内容&#xff0c;这个内容是我在做onvif中的imaging setting的时候&#xff0c;关注到里面有关于: brightness(亮度)color saturation(色彩饱和度)contrast(对比度)sharpness(锐度)white balance(白平衡…...

not in效率低(MYSQL的Not IN、not EXISTS如何优化)

【版权所有&#xff0c;文章允许转载&#xff0c;但须以链接方式注明源地址&#xff0c;否则追究法律责任】【创作不易&#xff0c;点个赞就是对我最大的支持】 前言 仅作为学习笔记&#xff0c;供大家参考 总结的不错的话&#xff0c;记得点赞收藏关注哦&#xff01; 目录 …...

微信小程序拉起支付报: 调用支付JSAPI缺少参数: total_fee

1. 调用支付JSAPI缺少参数: total_fee 2. 检查返回给前端调起支付的参数是否正确 一开始是params.put("package", prepay_id); 回来改回params.put("package", "prepay_id"prepay_id);...

Thinkphp6 如何 生成二维码

最近需要用到使用到二维码&#xff0c;需要将对应的网址输出生成二维码&#xff0c;Thinkphp6实现还是比较简单的&#xff1a; 第一步&#xff1a;安装 think-qrcode composer require dh2y/think-qrcode第二步&#xff1a;在对应的控制器使用 use dh2y\qrcode\QRcode;第三步&a…...

01.机器学习引言

1.机器学习的步骤 1. 数据搜集 其中数据划分&#xff0c;是将数据集分为训练集、验证集和测试集&#xff08;通常不考虑时间&#xff09; 2. 数据清洗 3. 特征工程 提取对象&#xff1a;原始数据&#xff08;特征提取一般在特征选择之前&#xff09; 提取目的&#xff1a;…...

结构型(二) - 桥接模式

一、概念 桥接模式&#xff08;Bridge Pattern&#xff09;&#xff1a;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 另一种理解方式&#xff1a;一个类存在两个&#xff08;或多个…...

多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现WOA-CNN-GRU-Attention多变量时间序列预测&#xff0c;WOA-CNN-GR…...

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景

最近在一个120万元的项目中&#xff0c;涉及到modbustcp通信&#xff0c;我作为软件总工负责项目的通信程序开发&#xff0c;modbus是一个在工业自动化领域中的通信协议&#xff0c;可以是modbusrtu&#xff0c;modbusascii&#xff0c;modbustcp三个形式&#xff0c;具体来说是…...

Socks5代理与IP代理:网络安全与爬虫之道

1. Socks5代理的多功能性 Socks5代理是一种支持TCP和UDP协议的代理技术&#xff0c;适用范围广泛。不同于传统HTTP代理&#xff0c;Socks5代理在传输数据时更为灵活&#xff0c;可以满足实时数据传输的需求&#xff0c;适用于在线游戏、视频流等场景。此外&#xff0c;Socks5代…...

苹果电脑怎么录屏?步骤详解,看到就是赚到

苹果电脑作为一款受欢迎的高性能设备&#xff0c;不仅在日常工作中发挥着重要作用&#xff0c;还可以用于创造内容&#xff0c;如录制屏幕内容。录屏功能能够帮助用户将屏幕上的活动记录成视频&#xff0c;方便分享、演示或存档。可是您知道苹果电脑怎么录屏吗&#xff1f;通过…...

vb毕业生管理系统设计与实现

【摘要】 本毕业生管理系统是使用VB和ACCESS数据库为开发工具开发的一个全新的管理系统(MIS)。开发出的软件可以在任何一个装有VB环境的机器上运行。本毕业生管理系统包括六个子模块:用户登陆模块、学籍管理模块、学生成绩模块、毕业设计选题模块、毕业设计成绩管理模块、系…...

WPF入门到精通:4.页面增删改查及调用接口(待完善)

在WPF中&#xff0c;页面的增删改查可以通过使用DataGrid等控件来实现。接口的调用可以使用HttpClient或RestSharp等网络库来完成。 1.页面增删改查 使用DataGrid控件来展示数据&#xff0c;并通过绑定数据源来实现数据的增删改查操作。示例代码如下&#xff1a; XAML代码&a…...

容器和云原生(三):kubernetes搭建与使用

目录 单机K8S docker containerd image依赖 kubeadm初始化 验证 crictl工具 K8S核心组件 上文安装单机docker是很简单docker&#xff0c;但是生产环境需要多个主机&#xff0c;主机上启动多个docker容器&#xff0c;相同容器会绑定形成1个服务service&#xff0c;微服务…...

spring boot集成jasypt 并 实现自定义加解密

一. 技术需求 由于项目中的配置文件 配置的地方过多&#xff0c;现将配置文件统一放到nacos上集中管理 且密码使用加密的方式放在配置文件中 项目中组件使用的版本环境如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 二. 技术实现 配置文…...

如何自学建网站/学生制作个人网站

交换机中line-rate用于端口限速&#xff0c;主要用于出端口上&#xff1b;traffic-limit用于流限速&#xff0c;主要用于入端口上。由于其实现机制原因可能导致一些软件测速工具&#xff08;如ftp和chariot等&#xff09;测试交换机traffic-limit时数据不准确&#xff0c;而测试…...

北京网站seo服务/seo工资待遇怎么样

区间修改部分 1.批量等值修改 前提条件 是要区间修改&#xff0c;区间查询&#xff0c;且修改操作修改的值是相同的&#xff0c;比如批量1&#xff0c;批量-1. 有一种特例是批量替换&#xff0c; 情景 一般是要对一个数组执行k次操作&#xff0c;每次改变其中一个区间内所…...

做网站市场报价/大数据精准客户

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。华为p30照片删除后可以恢复。华为手机在删除图片后&#xff0c;会保存在手机的已删除相册里。华为消费者业务产品全面覆盖手机、移动宽带终端、终端云等&#xff0c;凭借自身的全球化…...

有哪些网站是做数据展示/优化培训方式

【准备工作】 一、服务端注册账号&#xff0c;下载客户端 【亲测可行】SVN环境准备&#xff08;服务端&#xff1a;SVNBucket&#xff0c;客户端&#xff1a;TortoiseSVN&#xff09; 文章目录一、创建项目1.打开SVNBucket官网&#xff0c;点击“项目列表”按钮进入控制台2.点击…...

1g内存跑wordpress/引流人脉推广软件

把一切失望和沮丧都抛弃&#xff0c;成功之路就在你的脚下。...

自己怎么做网上注册免费的网站/网络推广怎么做好

用Java实现按字节长度截取中英文数字字符串的方法总结用Java实现按字节长度截取中英文数字字符串的方法总结方法一//jdk1.4.2.05Java代码/*** author cn* param s 要截取的字符串* param length 要截取字符串的长度->是字节一个汉字2个字节* return 返回length长度的字符串(…...