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 后面的列的个数和类型,要和表结构匹配…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...