XML、JSON

                            XML、JSON

XML

说明:

可扩张展标记语言,关注数据本身

作用:

1、描述数据,存储数据、传输数据

2、配置文件(web项目的web.xml文件、sping框架的sping.xml等)

要求:

文档的后缀名为.XML

文档有且只有一个根元素,根元素就是包含其他所有元素的元素

XML目前的版本只有1.0

语法规范:

1、XML声明

XML 表示文档为XML

?> 表示文档的结束

version 表示XML的版本

encoding 表示编码格式

standalone 表示文档是否独立

注:文档的声明必选写在首行,顶格写

2、有且只有一个根元素

3、严格区分大小写

4、属性值用引号:属性名="属性值",在一个标签中,不能出现相同属性

5、标签成对出现

6、空标签要关闭

7、元素正确嵌套

元素命名规则

1、可以字母、数字或其他可见字符

2、不能以数字开头

3、不能以XML开头

4、不能有空格

5、不能有冒号

实体:

实体叫:ENTITY,

作用:避免重复输入

1)、内置的5种实体

实体 符号

$lt; <

$gt; >

$amp; &

$quotl; "

$apos; '

2)、自定义实体

]>

3)、使用实体

&实体名;

文档

声明:文档类型定义——DOCTYPE,文档类型声明,紧跟 XML 声明之后,包含所有实体声明

构成:

1、元素

2、属性

3、实体

4、PCDATA

5、CDATA

DOM 解析过程

① 建 立 DocumentBuilderFactory : DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

② 建立 DocumentBuilder: DocumentBuilder builder = factory.newDocumentBuilder();

③ 建立 Document : Document doc = builder.parse(“要解析的文件路径”);

④ 建立 NodeList : NodeList nl = doc.getElementsByTagName(“读取节点”);

⑤ 进行 XML 信息读取

DOM4J解析

1、得到要解析文件对象 file对象

2、得到解析器

3、通过解析器将file文件解析成Document对象

4、得到文档对象的根元素对象  Element对象

5、根元素对象的所有子节点,返回迭代器

6、遍历迭代器,得到元素名称和文本



JSON

格式:

1、 构建结构:

1)、对象:"名称/值"对的集合 {"key":"value"}

2)、数组:值得有序列表 [{"key":"value"},{"key":"value"}]

2、具体形式

1)、Json 以key-value 的形式存储数据

2)、Key 的取值为String 类型;

3)、Value 的取值为String,boolean,Number,数组,Object,null;

4)、Json串以{开始,以}结尾;

5)、Json 串中数组是以[开始,以]结尾;

6)、Json 串中Object是以{开始,以}结尾;

Gson

单元测试类

  创建单元测试类

  1、选择src,右键,选择Other

  2、搜索"test",选择"JUnit Test Case"

3、设置包名和类名(和创建普通Java类一样)

  注意点:

  1、不能有父类

  2、不能是静态方法

  3、不能有参数

  4、返回是void

  5、要在方法上加注解 @Test

  6、如果执行成功,返回绿色;如果执行失败,返回暗红色

  如何运行:

  1、点击方法名,右键选择Run As或Debug As,选择"JUnit Test"执行

  2、点击类中任意空白,此时会执行所有单元测试方法

Gson解析步骤:

1、创建对象

2、创建Gson对象

Gson 变量名=new Gson();

3、使用toJson()方法获得值

Json 节点解析

1、获得解析器

语法:JsonParser parser= newJsonParser();

2、获得根节点元素

语法:JsonElement element= parser.parse(对象);

3、根据文档判断根节点属于什么类型的Gson 节点对象

语法:JsonObject root= element.getAsJsonObject();

4、取得节点下的某个节点的value

语法:JsonPrimitive flagJson= root.getAsJsonPrimitive("节点的值")

你可能感兴趣的:(XML、JSON)