JavaWeb 学习笔记 XML 和 Json 篇 | 020
今日推荐语
愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里
| 日期 | 学习内容 | 打卡编号 |
|---|---|---|
| 2025年01月23日 | JavaWeb笔记 XML 和 Json 篇 | 020 |
前言
哈喽,我是菜鸟阿康。
以下是我的学习笔记,既做打卡也做分享,希望对你也有所帮助,不足之处欢迎大家交流指正。
(请忽略错误的大纲编号,我直接从笔记中粘贴过来的,就没严格纠正了,重点在内容!)
文末和主页有往期学习笔记,大家感兴趣也可以去看下。
继续加油!铁铁们!
(一)概述
1.概述
- 学习前要求:学习过 HTML 和 JS
- 定义:XML 指可扩展标记语言(EXtensible Markup Language),是数据的一种表示格式,可以用来表示数据结构,常用于做数据的传输与存储。
-
- XML 是一种标记语言,很类似 HTML(由标签构成)
- XML 的设计宗旨是传输数据,而非显示数据(html)
- XML 标签没有被预定义,标签可以自定义
- 注意:XML 和 HTML 不同:HTML 旨在显示信息,而 XML 旨在传输信息。
2.样例
<?xml version="1.0" encoding="ISO-8859-1"?>
<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body>
</note>

3.树结构
官方建议,类似于 category 这类标签,建议直接定义为元素
避免XML属性
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护

(二)XML语法与引用
1.语法规则
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始名称不能以字符 “xml”(或者 XML、Xml)开始(验证了是可以的,但是不建议使用,担心后面解析xml会出现问题)
- 名称不能包含空格
- 对大小写敏感
- 不能嵌套,标签成对出现,正常开始正常结束
良好的命名习惯
- 见名知意
- 名称应当比较简短,比如:,而不是:
- 避免使用 - . :
- 尽量和数据库命名一致
2.特殊符号引用
在 xml 需要引用<,>等特殊符号时,需要按照以下要求进行特殊引用

(三)XML模板定义与约束定义
1.模板定义
在 idea 新建 XML 文件一般是通过新建文件,后缀.xml定义完成,需要自己声明或者修改文件的声明,操作麻烦,对于这类重复操作可以在 Setting 中自定义,以后右键新建就会出现 XML 格式的文件,并有声明。

2.DTD约束
DTD(Document Type Definition,文档类型定义),可以简单理解为 XML 文件中的固定标签格式。
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
编写 DTD 约束文件,后缀是以 .dtd 结尾
- 注意:不要去使用相对路径,我们使用绝对路径才能导入

在xml 文件中引用即可
<!DOCTYPE note SYSTEM "dtd文件名">
3.Schema约束
- 定义:XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD
- 约束能力:
-
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
- 本身就是个xml 文件,只不过格式更加严谨,能够去约束具体的字段值类型
- 后缀是.xsd
- 以后学习 mybatis 的时候,会有很多的约束,直接用就行了不用自己去定义
4.读取XML
4.1 读取方式和解析器
- 方式
-
- DOM
-
-
- 将标记语言的文字全部一次性读进内存里面,在内存中形成一棵树
- 优点:操作方便,可以增删改查
- 缺点:占内存
-
-
- SAX
-
-
- 逐行读取,基于事件驱动的
- 优点:不占内存
- 缺点:只能读,不能够增删改
-
- 常见的解析器
-
- JAXP:sum 公司提供的解析器。支持 dom sax
- DOM4J:比较优秀
- jsoup:HTML 解析
五、JSON
(一)JSON 的两种类型
1.JS JSON
JavaScript Object Notation(JavaScript 对象标记法)
{
name:"Bill Gates",
age:62,
city:"Seattle"
}
2.Java JSON
{
"name":"Bill Gates",
"age":62,
"city":"Seattle"
}
3.应用场景
- 传参
- 接收参数
(二)js json语法规则
1.语法规则
- 语法规则
-
- 数据名称/值
- 数据由逗号分隔
- 花括号容纳对象
- 方括号容纳数组
- js 对象和 JSON 的对比
-
- json
- json 值类型
-
-
- 字符串
- 数字
- 对象(JSON 对象)
- 数组
- 布尔
- null
-
2.js json类型
- 字符串
{ "name":"Bill Gates" } ==>解析 let ret = JSON.parse(json);
- 对象
{ name:"Bill Gates" } ==>解析 let strJson = JSON.stringify(ret);
(三)java 对象和 json 相互转换
1.json介绍(java版)
- 背景
-
- 可以通过json 实现前后端的交互
- json 的数据格式较小,减少资源消耗
- 后端需掌握
-
- 请求数据:json 字符串提交给后端处理
- 响应数据:java 对象转换成 json 字符串
2.fastjson的使用
在后端开发中,由于 json 数据格式较小的优势,常用于前后端数据交互的传输载体,但是 json 和 java 对象是两种数据格式,需要转换才能使用,比较优秀的转换框架为阿里的 fastjson 框架.
//java 对象转 json
JSON.toJSONString(obj);
//json 转 java 对象
JSON.parseObject(jsonStr,Person.class)
往期笔记【文末福利】
近期优质好文,2 篇文章快超过 2k 码友阅读,并超30收藏,非常值得一看。
1.SQL优化七个方向,成体系,非常容易上手,有助于快速定位问题。
SQL优化的7个方向(慢查询从这里排查就好了)-CSDN博客
2.如果 java基础 和 JDBC 学完不知道做什么项目?这套项目非常适合你,附有源码
优势:提前了解分层开发,加深对 java语言的理解,在实战中检验自己,串联知识点~
JDBC 实战项目(增删改查小系统,接近完美!)017-CSDN博客
相关文章:
JavaWeb 学习笔记 XML 和 Json 篇 | 020
今日推荐语 愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里 日期 学习内容 打卡编号2025年01月23日JavaWeb笔记 XML 和 Json 篇020 前言 哈喽,我是菜鸟阿康。 以下是我的学习笔记,既做打卡也做分享,希望对你也有所帮助…...
在Raspbian上,如何获取树莓派的CPU当前频率
本文不用汇编实现,因为我是要用在 Go 里的,Go 并不支持内联汇编,要用汇编比较麻烦。而且项目并不是很在意性能,所以直接用命令获取内核准备好的。 在Raspbian上,CPU 信息存放在/sys/devices/system/cpu/中,…...
网络打印机的搜索与连接(一)
介绍 网络打印机就是可以通过网络连接上的打印机,这类打印机分2种:自身具有互联网接入功能可以分配IP的打印机我们称为网络打印机、另外一种就是被某台电脑连接上去后通过共享的方式共享到网络里面的我们称为共享打印机。现在还有一种可以通过互联网连接…...
LangChain + llamaFactory + Qwen2-7b-VL 构建本地RAG问答系统
单纯仅靠LLM会产生误导性的 “幻觉”,训练数据会过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generati…...
【自然语言处理(NLP)】介绍、发展史
文章目录 介绍发展史1. 规则驱动时期(20世纪50年代-80年代)技术特点标志性成果 2. 统计方法兴起(1990年代-2000年代)技术特点标志性成果 3. 神经网络复兴(2010年代初至今)技术特点标志性成果 4. 集成与应用…...
1.CSS的三大特性
css有三个非常重要的三个特性:层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…...
【分布式日志篇】从工具选型到实战部署:全面解析日志采集与管理路径
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
基于springcloud汽车信息分析与可视化系统
基于Spring Cloud的汽车信息分析与可视化系统是一款旨在整合、分析汽车相关数据并以直观可视化方式呈现的应用系统。 一、系统架构 该系统基于先进的Spring Cloud架构构建,充分利用其分布式、微服务特性,确保系统具备高可用性、可扩展性和灵活性。Spri…...
TOGAF之架构标准规范-信息系统架构 | 数据架构
TOGAF是工业级的企业架构标准规范,信息系统架构阶段是由数据架构阶段以及应用架构阶段构成,本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示,信息系统架构(Information Systems Architectures)在TOGAF标准规…...
Databend x 沉浸式翻译 | 基于 Databend Cloud 构建高效低成本的业务数据分析体系
「沉浸式翻译」是一个非常流行的双语对照网页翻译扩展工具,用户可以用它来即时翻译外文网页、PDF 文档、ePub 电子书、字幕等。它不仅可以实现原文加译文实时双语对照显示,还支持 Google、OpenAI、DeepL、微软、Gemini、Claude 等数十家翻译平台服务的自…...
cuda的并行运算介绍
cuda是如何使用GPU并行运算的: 以一个函数为例: duplicateWithKeys << <(P 255) / 256, 256 >> > (P,geomState.means2D,geomState.depths,geomState.point_offsets,binningState.point_list_keys_unsorted,binningState.point_list_…...
「全网最细 + 实战源码案例」设计模式——抽象工厂模式
核心思想 抽象工厂模式是一种创建型设计模式,它提供一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们的具体类。抽象工厂模式解决了产品族的问题,可以管理和创建一组相关的产品。 结构 1. 抽象工厂 定义创建一些列…...
领域驱动设计(DDD)四 订单管理系统实践步骤
以下是基于 领域驱动设计(DDD) 的订单管理系统实践步骤,系统功能主要包括订单的创建、更新、查询和状态管理,采用 Spring Boot 框架进行实现。 1. 需求分析 订单管理系统的基本功能: 订单创建:用户下单创…...
leetcode 面试经典 150 题:简化路径
链接简化路径题序号71题型字符串解法栈难度中等熟练度✅✅✅ 题目 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为 更加简洁的规范路径。 在 Unix 风格的文件系统中规则如下…...
基于 STM32 的智能农业温室控制系统设计
1. 引言 随着农业现代化的发展,智能农业温室控制系统对于提高农作物产量和质量具有重要意义。该系统能够实时监测温室内的环境参数,如温度、湿度、光照强度和土壤湿度等,并根据这些参数自动调节温室设备,如通风扇、加热器、加湿器…...
【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
前言 🌟🌟本期讲解关于spring 事务传播机制介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话…...
【Postgres_Python】使用python脚本将多个PG数据库合并为一个PG数据库
需要合并的多个PG数据库表个数和结构一致,这里提供一种思路,选择sql语句insert插入的方式进行,即将其他PG数据库的每个表内容插入到一个PG数据库中完成数据库合并 示例代码说明: 选择一个数据库导出表结构为.sql文件(…...
Tailwind CSS v4.0 发布
Holy shit its actually done ! 1 月 22 日,Tailwind CSS 正式发布了 4.0 版本,针对性能和灵活性进行了优化,重新构想了配置和定制体验,并充分利用了 Web 平台提供的最新进展。 新的高性能引擎- 完整构建速度提高 5 …...
pandas基础:文件的读取和写入
文件的读取和写入 读取csv文件 csv文件: name,age,city Alice,25,New York Bob,30,Los Angelesread_csv(filename) header:如 何处理文件的第一行。header0将第一行作为列名,headerNone表示文件中没有列名,所有行都是数据。 im…...
【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作
数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…...
116. 为项目监控员生成的警报添加标签
Procedure 程序To label alerts for Project Monitors, you must configure the Prometheus Federator Helm charts values section. This is done by adding additionalRuleLabels under defaultRules within helmProjectOperator. You can perform this modification during…...
Python对象生命周期全链路追踪,从PyObject_MALLOC到gc_collect:一线工程师压测验证的5个致命内存误用场景
第一章:Python对象生命周期全链路追踪概览Python对象的生命周期涵盖创建、使用、引用管理直至最终销毁的全过程。理解这一链条对诊断内存泄漏、优化资源使用及编写健壮代码至关重要。对象并非仅在 __init__ 中诞生,也非仅靠 del 显式终结;其真…...
万象视界灵坛实战教程:构建语义搜索API供前端React/Vue应用调用
万象视界灵坛实战教程:构建语义搜索API供前端React/Vue应用调用 1. 项目概述与核心价值 万象视界灵坛是一款基于OpenAI CLIP模型的高级多模态智能感知平台,它将复杂的语义对齐技术转化为直观的视觉体验。本教程将指导开发者如何将其强大的语义搜索能力…...
Excel数据合并工具软件:一键汇总无压力
办公经常收到多份表格需要合并, Excel合并常踩坑。 单元格合表没用。 表头丢了更闹心。 为啥用它? 之前工具处理合并单元格失效、表头无法保留。 这款刚好补上短板。 核心功能 Excel数据合并工具。 省心好用。 核心就一事: 多Excel…...
解锁5大核心能力:BetterJoy让Switch手柄在PC实现专业级控制
解锁5大核心能力:BetterJoy让Switch手柄在PC实现专业级控制 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode…...
暗黑3效率革命:D3keyHelper全流程自动化实战指南
暗黑3效率革命:D3keyHelper全流程自动化实战指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3keyHelper是一款基于AutoHotkey&#…...
SEO 优化工具如何进行本地优化
SEO 优化工具如何进行本地优化 在当今数字化时代,本地优化成为了企业和个人网站在百度搜索中获得高排名的关键因素之一。本地优化,即通过特定策略提升一个网站在特定地理位置的搜索排名,这对于希望在本地市场中获得更多流量的企业尤为重要。…...
2026年4月OpenClaw部署教程:阿里云快速部署OpenClaw、配置百炼APIKey、集成Skill详细方法
2026年4月OpenClaw部署教程:阿里云快速部署OpenClaw、配置百炼APIKey、集成Skill详细方法。OpenClaw(原Clawdbot)作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉&#x…...
NVIDIA Profile Inspector配置问题全方位解决方案
NVIDIA Profile Inspector配置问题全方位解决方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 问题定位:识别配置故障的关键信号 在使用NVIDIA Profile Inspector(一款NVIDI…...
百考通:AI精准驱动数据分析,让数据价值更具人工写作的温度与逻辑
在数字化浪潮席卷各行各业的今天,数据已成为核心生产要素,但如何从海量数据中挖掘价值、辅助决策,始终是企业与个人面临的核心难题。传统数据分析流程繁琐、技术门槛高、周期漫长,让许多非专业人士望而却步。百考通(ht…...
