JSON 简介

JSON是什么?(了解)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间的数据传输。

JSON格式是一种文本格式,用于描述数据的结构和内容。它由两种基本元素组成:键值对和数组。键值对是一个键和一个值之间的映射关系,用于描述对象的属性和值。数组是一个有序列表,用于描述对象的多个值。

JSON的结构组成是什么?(掌握)

键值对

键值对由一个键和一个值之间的映射关系组成。键和值之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。键必须是一个字符串,值可以是一个字符串、数字、布尔值、对象或数组。

数组

数组是一个有序列表,由一组值组成。每个值可以是一个字符串、数字、布尔值、对象或数组。值之间用逗号(,)分隔。

JSON格式主要用于什么地方?(了解)

  • 在Web应用程序之间传输数据;
  • 用于存储和读取数据;
  • 用于API数据交换;
  • 用于配置文件格式。

JSON字符串和对象的互换如何进行?(掌握)

引入依赖包,会调用JSON的一些方法

<!--JSON 使用需要-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version>
</dependency><!--lombok 注解需要-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version>
</dependency>

对象格式化为JSON字符串,调用 JSON.toJSONString(“对象”)
JSON字符串转化为对象,调用 JSON.parseObject(jsonString, 对象.class);

代码示例如下:

User对象类:

package com.json;import lombok.Data;@Data
public class User {private String name;private int age;private String address;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +'}';}
}

JsonTest类

package com.json;import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class JsonTest {public static void main(String[] args) {Map<String,String> map = new HashMap<>();map.put("name","Gump");map.put("age","18");
//        map.put("address","重庆");String jsonString = JSON.toJSONString(map);System.out.println(jsonString);//{"name":"Gump","age":"18"}//JSON字符串转对象时,默认填充为空的项,例如 address='null'User user = JSON.parseObject(jsonString, User.class);System.out.println(user);//User{name='Gump', age=18, address='null'}Map<String,String> map2 = new HashMap<>();map2.put("name","you");map2.put("age","17");map2.put("address","中国");List<Map<String,String>> list = new ArrayList<>();list.add(map);list.add(map2);jsonString = JSON.toJSONString(list);System.out.println(jsonString);//如果转换的对象是List 需要用 parseArray 方法,返回List<T>对象List<User> userList = JSON.parseArray(jsonString, User.class);System.out.println(userList);}
}

注意:
JSON字符串转对象时,默认填充为空的项,例如示例中的 address=‘null’

如果转换的对象是List 需要用 parseArray 方法,返回List对象

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

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

相关文章

基于PyQt5自定义UI的详细教程

PyQt5和Qt designer的详细安装教程&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501Qt designer界面和所有组件功能的详细介绍&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001…

八股文打卡day7——计算机网络(7)

面试题&#xff1a;HTTPS和HTTP的区别 我的回答&#xff1a; 1.加密方式&#xff1a;HTTP是明文传输&#xff1b;HTTPS使用了SSL/TLS进行加密传输。 2.安全性&#xff1a;由于HTTP是明文传输的&#xff0c;所以数据内容容易被第三方截获和读取。而HTTPS通过SSL/TLS进行加密传…

Vue中使用require.context自动引入组件的方法介绍

我们项目开发中&#xff0c;经常需要import或者export各种模块&#xff0c;那么有没有什么办法可以简化这种引入或者导出操作呢&#xff1f;答案是肯定的&#xff0c;下面就为大家介绍一下require.context require.context 是 webpack 提供的一个 API&#xff0c;用于创建 con…

运行天地图Cesium.js三维服务案例

零、技术选型及相关网址 技术选型&#xff1a;Vue2、VueCli5、Cesium.js、天地图 相关网址&#xff1a;三维服务 - 天地图 帮助文档 一、cesium 初始化参数解析 initializeCesium() {this.viewer new Cesium.Map("cesiumContainer", {shouldAnimate: true, // 是否…

基于二进制包的mysql安装

下载二进制包 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz查看是否存在mariadb安装 [rootbogon ~]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64#卸载包。 --nodeps 不检验依赖 [rootbogon ~]# rpm -e --…

gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system

目录 一、gem5 master and slave ports 二、Packets 三、Port interface 1、主设备发送请求时从设备忙 2、从设备发送响应时主设备忙 四、Simple memory object example 1、Declare the SimObject 2、Define the SimpleMemobj class 3、Define the SimpleMemobj class…

EST-100身份证社保卡签批屏按捺终端PC版web版本http协议接口文档,支持web网页开发对接使用

<!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,initial-scale1.0"><title>演示DEMO</title><script type"text/…

亚马逊SEO是什么意思?亚马逊标题的SEO方法是什么?-站斧浏览器

亚马逊SEO是什么意思&#xff1f; 亚马逊SEO主要包括了对标题、描述、五点简介等元素的优化&#xff0c;以及评价和评论的管理等方面。下面将详细分析亚马逊SEO的相关内容&#xff0c;帮助卖家更好地理解和应用。 在亚马逊平台上进行SEO优化需要考虑以下几个方面&#xff1a;…

gin框架使用系列之四——json和protobuf的渲染

系列目录 《gin框架使用系列之一——快速启动和url分组》《gin框架使用系列之二——uri占位符和占位符变量的获取》《gin框架使用系列之三——获取表单数据》 上篇我们介绍了如何获取数据&#xff0c;本篇我们介绍一下如何返回固定格式的数据。 一、返回JSON数据 在web开发中…

如何在临近期末考之前,保持一个良好的心态呢?

在临近期末考之前&#xff0c;保持一个良好的心态非常重要&#xff0c;因为这有助于你在考试中发挥出自己的最佳水平。以下是一些建议&#xff0c;帮助你保持冷静和专注&#xff1a; 制定计划&#xff1a;制定一个详细的学习计划&#xff0c;包括每天要复习的科目和内容。这样…

开源安全测试工具 | 网络安全工具列表

自动化渗透测试 • AttackSurfaceMapper (https://github.com/superhedgy/AttackSurfaceMapper) - 自动化渗透测试工具, 使用手册/测试流程 (https://www.uedbox.com/post/59110/)。 • vajra (https://github.com/r3curs1v3-pr0xy/vajra) - 自动化渗透测试. • Savior (https…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…

golang第一卷---go入门

go入门 对于使用go的好处环境变量配置开发工具 参考网站 &#xff1a;go入门 对于使用go的好处 简单好记的关键词和语法。轻松上手&#xff0c;简单易学。更高的效率。比Java&#xff0c;C等拥有更高的编译速度&#xff0c;同时运行效率媲美C&#xff0c;同时开发效率非常高。…

爬虫工作量由小到大的思维转变---<第三十三章 Scrapy Redis 23年8月5日后会遇到的bug)>

前言: 收到回复评论说,按照我之前文章写的: 爬虫工作量由小到大的思维转变---&#xff1c;第三十一章 Scrapy Redis 初启动/conn说明书)&#xff1e;-CSDN博客 在启动scrapy-redis后,往redis丢入url网址的时候遇到: TypeError: ExecutionEngine.crawl() got an unexpected …

Conda简介及常用指令

Conda 是一个开源的包管理器和环境管理器&#xff0c;主要用于安装、运行和升级数据科学和机器学习等领域的软件包和依赖。Conda 可以用于多种语言&#xff0c;包括 Python、R、Ruby、Lua、Scala、Java、JavaScript、C/ C 等。 Conda 的主要特点 环境管理&#xff1a;Conda 允…

linux查看服务器内存

要查看服务器内存&#xff0c;可以使用以下命令&#xff1a; 使用 free 命令来查看服务器的内存使用情况&#xff1a; free -h该命令将显示内存使用情况的摘要&#xff0c;包括总内存、已使用内存、可用内存等信息。 使用 top 命令来实时监视内存使用情况&#xff1a; top在…

Qt GUI 优化方案详解

文章目录 一、引言二、应用启动优化2.1 懒加载概念1. **懒加载的应用场景:**2. **Qt中的懒加载方式:**3. **示例 - C++中的懒加载:**4. **示例 - QML中的懒加载:**2.2 异步加载1. **异步加载的应用场景:**2. **实现异步加载的方式:**3. **示例 - 使用Qt的异步网络请求:*…

数据资产专题3:估值

欢迎关注主页个人介绍及相关链接&#xff0c;获取更多算法源码材料 2023数据资源入表白皮书&#xff0c;推荐系统源码下载-CSDN博客 浅析研发支出费用化和资本化的区别-CSDN博客 商业银行数据资产估值白皮书&#xff0c;推荐系统源码下载-CSDN博客 用友BIP数据资产入表解决…

odoo17核心概念view4——view.js

这是view系列的第四篇文章&#xff0c;专门介绍View组件。 作为一个Component&#xff0c;它总共包含js、css、xml三个标准文件&#xff0c;当然最重要的是view.js 首先在setup函数中对传入的参数props做了各种校验&#xff0c;然后扩展了subenv useSubEnv({keepLast: new Kee…

2. SQL - 约束

1 主键约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。 每个表都应该有一个主键&#xff0c;并且每个表只能有一个主键。 添加主键约束 创建表时&#xff0c;在字段描述处&#xff0c;声明指定字段为主键创建表时&…