钜形不锈钢水箱 发表于 2025-1-24 13:22:26

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>
https://i-blog.csdnimg.cn/img_convert/56b236b44e889200f3799e366fbc20d2.png
3.树布局

官方发起,类似于 category 这类标签,发起直接定义为元素
克制XML属性


[*]属性无法包含多重的值(元素可以)
[*]属性无法形貌树布局(元素可以)
[*]属性不易扩展(为将来的厘革)
[*]属性难以阅读和维护

https://i-blog.csdnimg.cn/img_convert/330f83f656cfb2af2d35d16c7bd653d1.png
(二)XML语法与引用

1.语法规则



[*]名称可以含字母、数字以及其他的字符
[*]名称不能以数字或者标点符号开始名称不能以字符 “xml”(或者 XML、Xml)开始(验证了是可以的,但是不发起使用,担心背面分析xml会出现问题)
[*]名称不能包含空格
[*]对大小写敏感
[*]不能嵌套,标签成对出现,正常开始正常竣事
良好的命名风俗


[*]见名知意
[*]名称应当比较简短,比如:,而不是:
[*]克制使用 - . :
[*]只管和数据库命名同等
2.特殊符号引用

在 xml 需要引用<,>等特殊符号时,需要按照以下要求进行特殊引用

https://i-blog.csdnimg.cn/img_convert/7b446118575009b0373122ad1bb79fb1.png
(三)XML模板定义与约束定义

1.模板定义

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

https://i-blog.csdnimg.cn/img_convert/fe5624958e99347493fcab46ce0ba278.png
2.DTD约束

DTD(Document Type Definition,文档类型定义),可以简单明白为 XML 文件中的固定标签格式。
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的布局。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
编写 DTD 约束文件,后缀是以 .dtd 末端


[*]注意:不要去使用相对路径,我们使用绝对路径才气导入

https://i-blog.csdnimg.cn/img_convert/99aa34fc388063c2508ef2bd7f5fddd0.png
在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博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: JavaWeb 学习条记 XML 和 Json 篇 | 020