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

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对象

相关文章:

JSON 简介

JSON是什么&#xff1f;(了解) JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;常用于Web应用程序之间的数据传输。 JSON格式是一种文本格式&#xff0c;用于描述数据的结构和内容。它由两种基本元素组成&#xff1a;键值对和…...

Impala4.x源码阅读笔记(三)——Impala如何管理Iceberg表元数据

前言 本文为笔者个人阅读Apache Impala源码时的笔记&#xff0c;仅代表我个人对代码的理解&#xff0c;个人水平有限&#xff0c;文章可能存在理解错误、遗漏或者过时之处。如果有任何错误或者有更好的见解&#xff0c;欢迎指正。 上一篇文章Impala4.x源码阅读笔记&#xff0…...

Ubuntu2204配置samba

0.前情说明 samba服务器主要是用来局域网共享文件的&#xff0c;如果想公网共享可能行不通&#xff0c;我已经踩坑一天了 所以说如果你想满足公网samba共享你就可以不要看下去了 1.参考连接 Ubuntu 安装 Samba 服务器_ubuntu安装samba服务器-CSDN博客 2.安装samba服务 sud…...

AVL树(超详解)

文章目录 前言AVL树的概念AVL树的实现定义AVL树insert 单旋左单旋右单旋左单旋代码右单旋代码 双旋左右双旋右左双旋 测试AVL树的性能 前言 AVL树是怎么来的呢&#xff1f; 我们知道搜索二叉树会存在退化问题&#xff0c;退化以后就变成单支或者接近单支。 它的效率就变成O(N)…...

禁止浏览器记住密码和自动填充 element-ui+vue

vue 根据element-ui 自定义密码输入框&#xff0c;防止浏览器 记住密码和自动填充 <template><divclass"el-password el-input":class"[size ? el-input-- size : , { is-disabled: disabled }]"><inputclass"el-input__inner"…...

K8s实战-init容器

概念&#xff1a; 初始化容器的概念 比如一个容器A依赖其他容器&#xff0c;可以为A设置多个 依赖容易A1&#xff0c;A2&#xff0c;A3 A1,A2,A3要按照顺序启动&#xff0c;A1没有启动启动起来的 话&#xff0c;A2,A3是不会启动的&#xff0c;直到所有的静态容器全 部启动完毕…...

Vue3.2 自定义指令详解与实战

一、介绍 在Vue3中&#xff0c;自定义指令为开发者提供了一种灵活的方式来扩展Vue的HTML模板语法&#xff0c;使其能够执行特定的DOM操作或组件逻辑。不同于Vue2.x中的全局和局部指令注册方式&#xff0c;Vue3引入了Composition API&#xff0c;这使得自定义指令的编写和使用更…...

XV-3510CB振动陀螺仪传感器

XV-3510CB传感器是一款振动陀螺仪传感器&#xff0c;具有卓越的稳定性和可靠性&#xff0c;超小的封装尺寸SMD53.21.3mm&#xff0c;密封提供了良好的可持续环保能力&#xff0c;采用振动晶体&#xff0c;该传感器具有稳定的性能和超长的寿命。振动晶体的振动能够提供更为精确的…...

设计模式Java向

设计原则&#xff1a; 开闭原则&#xff1a; 用例对象和提供抽象功能进行分割&#xff0c;用例不变&#xff0c;抽象功能被实现&#xff0c;用于不断的扩展&#xff0c;于是源代码不需要进行修改&#xff0c;只在原有基础上进行抽象功能的实现从而进行代码扩展。不变源于代码…...

图片素材管理软件Eagle for mac提高素材整理维度

Eagle for mac是一款图片素材管理软件&#xff0c;支持藏网页图片&#xff0c;网页截屏&#xff0c;屏幕截图和标注&#xff0c;自动标签和筛选等功能&#xff0c;让你设计师方便存储需要的素材和查找&#xff0c;提供工作效率。 Eagle mac软件介绍 Eagle mac帮助你成为更好、…...

Transformer各模块结构详解(附图)

前言&#xff1a;基于TRANSFORMER的结构在视觉领域是承上启下的作用。刚接触会比较难&#xff0c;上的话需要对RNN&#xff0c;LSTM&#xff0c;ATTENTION先有初步的了解。下的话需要学习VIT&#xff0c;GPT&#xff0c;DETR等结构先了解TRANSFORMER都是必要的。 参考&#xff…...

Python遥感影像深度学习指南(2)-在 PyTorch 中创建自定义数据集和加载器

在上一篇 文章中,我们Fast.ai 在卫星图像中检测云轮廓,检测物体轮廓被称为语义分割。虽然我们用几行代码就能达到 96% 的准确率,但该模型无法考虑数据集中提供的所有输入通道(红、绿、蓝和近红外)。问题在于,深度学习框架(如 Keras、Fast.ai 甚至 PyTorch)中的大多数语…...

韩版传奇 2 源码分析与 Unity 重制(三)客户端渲染管线

专题介绍 该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。 概览 在这一篇文章中,我们将开始分析传奇客户…...

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第三节 栈与堆&#xff0c;值类型与引用类型 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工…...

分享好用的chatgpt

1.在vscode中&#xff0c;点击这个&#xff1a; 2.搜索&#xff1a;ChatGPT - 中文版&#xff0c;个人觉得这个更好用&#xff1a; 3.下载完成之后&#xff0c;左侧会多出来这个&#xff1a; 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…...

【小白专用】C# 压缩文件 ICSharpCode.SharpZipLib.dll效果:

插件描述&#xff1a; ICSharpCode.SharpZipLib.dll 是一个完全由c#编写的Zip, GZip、Tar 、 BZip2 类库,可以方便地支持这几种格式的压缩解压缩, SharpZipLib 的许可是经过修改的GPL&#xff0c;底线是允许用在不开源商业软件中&#xff0c;意思就是免费使用。具体可访问ICSha…...

Protobuf 编码规则及c++使用详解

Protobuf 编码规则及c使用详解 Protobuf 介绍 Protocol Buffers (a.k.a., protobuf) are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data Protocol Buffers&#xff08;简称为protobuf&#xff09;是谷歌的语言无关、…...

Kafka优异的性能是如何实现的?

Apache Kafka是一个分布式流处理平台&#xff0c;设计用来处理高吞吐量的数据。它被广泛用于构建实时数据管道和流式应用程序。Kafka之所以能够提供优秀的性能和高吞吐量&#xff0c;主要得益于以下几个方面的设计和实现&#xff1a; 1. 分布式系统设计 Kafka是一个分布式系统…...

(二)MaterializedMySQL具体实施步骤举例

要将 MySQL 中的 test 数据库实时同步到位于同一台服务器&#xff08;IP 地址为 192.168.197.128&#xff09;上的 ClickHouse&#xff0c;您可以使用 MaterializedMySQL 引擎。以下是详细的步骤&#xff1a; 1. 准备工作 确保您的 MySQL 和 ClickHouse 服务都在运行&#xf…...

日志框架简介-Slf4j+Logback入门实践 | 京东云技术团队

前言 随着互联网和大数据的迅猛发展&#xff0c;分布式日志系统和日志分析系统已广泛应用&#xff0c;几乎所有应用程序都使用各种日志框架记录程序运行信息。因此&#xff0c;作为工程师&#xff0c;了解主流的日志记录框架非常重要。虽然应用程序的运行结果不受日志的有无影…...

基于AI宏观流动性监测框架的黄金三日连跌研究:美联储加息预期按兵不动后的市场重定价逻辑

摘要&#xff1a;本文通过AI宏观利率模型、美元流动性监测系统与黄金波动率因子分析&#xff0c;结合美通胀数据、美债收益率变化及市场利率预期重定价过程&#xff0c;分析黄金连续三日回落背后的核心驱动逻辑&#xff0c;并探讨当前“高利率持续”环境下黄金资产的阶段性压力…...

Chunkhound:基于语义块与统一IR的智能代码理解框架解析

1. 项目概述&#xff1a;从“代码块猎犬”到智能代码理解 最近在琢磨一个挺有意思的开源项目&#xff0c;叫 chunkhound/chunkhound 。光看名字&#xff0c;你可能会联想到某种嗅觉灵敏的猎犬&#xff0c;没错&#xff0c;它的定位就是代码世界里的“猎犬”&#xff0c;专门负…...

RPG Maker插件如何让你零代码创建专业级游戏地图?

RPG Maker插件如何让你零代码创建专业级游戏地图&#xff1f; 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否曾为RPG Maker游戏地图缺乏深度和立体感而烦恼&#xff1f;是否…...

开源HR智能体openhr-agent:本地部署、模块化设计与核心应用场景解析

1. 项目概述&#xff1a;一个开源的HR智能体最近在GitHub上看到一个挺有意思的项目&#xff0c;叫openhr-agent。光看名字&#xff0c;你可能会觉得这又是一个“AI要取代HR”的噱头工具。但实际深入了解一下&#xff0c;我发现它的定位和设计思路&#xff0c;比想象中要务实和清…...

TortoiseSvn与TortoiseGit:从零开始的安装与汉化实战指南

1. TortoiseSvn与TortoiseGit&#xff1a;版本控制界的"瑞士军刀" 第一次接触代码版本管理时&#xff0c;我完全被命令行劝退了。直到发现了TortoiseSvn和TortoiseGit这两个神器——它们就像给Windows资源管理器装上了版本控制的"外挂"&#xff0c;所有操作…...

终极指南:如何让微信网页版在浏览器中重新可用

终极指南&#xff1a;如何让微信网页版在浏览器中重新可用 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无法正常访问而烦恼吗&…...

Next.js企业级项目脚手架:架构设计、工程化实践与生产部署指南

1. 项目概述&#xff1a;一个为Next.js量身打造的企业级起点如果你正在寻找一个能让你快速启动Next.js项目&#xff0c;同时又不想在项目初期就陷入繁琐的脚手架搭建、代码规范配置和基础架构设计的泥潭&#xff0c;那么once-ui-system/nextjs-starter这个项目很可能就是你一直…...

Vue2项目里,如何用DHTMLX Gantt实现任务搜索、今日线定位和视图切换?这些实用功能我帮你搞定了

Vue2项目中DHTMLX Gantt三大进阶功能实战&#xff1a;搜索、今日线与视图切换 在项目管理工具的开发中&#xff0c;甘特图作为核心可视化组件&#xff0c;其交互体验直接决定了用户的使用效率。本文将聚焦三个高频需求场景&#xff0c;手把手教你如何在已有DHTMLX Gantt集成的V…...

Revelation光影包:物理渲染与启发式算法的视觉革命

Revelation光影包&#xff1a;物理渲染与启发式算法的视觉革命 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation Revelation不仅仅是一个Minecraft光影包——它是基于物理渲…...

Diablo Edit2:终极暗黑破坏神2角色存档编辑器完全指南

Diablo Edit2&#xff1a;终极暗黑破坏神2角色存档编辑器完全指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否厌倦了在暗黑破坏神2中反复刷装备&#xff1f;是否因为技能点分配错误而不…...