XML 可拓展标记语言
是一种简单的数据存储语言、
格式
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8">//xml声明
<books id="h1">//根元素
<book>//标签
<author>北大青鸟</author>
<title>java从入门到入土</title>
</book>
</books>
标签必须成对出现
xml中特殊字符串的处理
< | < | 小于 |
---|---|---|
> | > | 大于 |
& | & | 和号 |
' | ' | 单引号 |
" | " | 引号 |
xml注释
<!---->
使用DTD正XML文档
DTD 文档类型定义的缩写
元素的定义规则、元素之间的关系规则、属性的定义规则
使没个xml文件可以携带一个自身格式的描述
不同组织的人可以通过通用DTD来交换数据
使用Schema验证xml文档
改进了DTD的晦涩语法、缺乏数据类型、封闭的内容模型
`特点:
xml与操作系统、变成语言的开发平台无关
作用:数据交互
JSON
JavaScript Object Notation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 语法规则
JSON 语法是 JavaScript 对象表示语法的子集。
数据在名称/值对中
数据由逗号分隔
大括号 {} 保存对象
中括号 [] 保存数组,数组可以包含多个对象
代码语言:javascript复制`"s`ites": [`
`{ "name":"菜鸟教程" , "url":"www.runoob.com" },`
`{ "name":"google" , "url":"www.google.com" },`
`{ "name":"微博" , "url":"www.weibo.com" }`
]`
与 XML 相同之处
- JSON 是纯文本
- JSON 具有"自我描述性"(人类可读)
- JSON 具有层级结构(值中存在值)
- JSON 可通过 JavaScript 进行解析
- JSON 数据可使用 AJAX 进行传输
与 XML 不同之处
- 没有结束标签
- 更短
- 读写的速度更快
- 能够使用内建的 JavaScript eval() 方法进行解析
- 使用数组
- 不使用保留字‘
- 最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。
JSON 值
JSON 值可以是:
数字(整数或浮点数) { "age":30 }
字符串(在双引号中){ "age":“30” }
逻辑值(true 或 false){ "flag":true }
数组(在中括号中)
代码语言:javascript复制 "sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
对象(在大括号中)
代码语言:javascript复制{ "name":"菜鸟教程" , "url":"www.runoob.com" }
null,
代码语言:javascript复制{ "runoob":null }
访问
sites[0].name;
修改,sites[0].name="菜鸟教程";
使用fastjson来处理json
代码语言:javascript复制// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
// 把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);
// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
//把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);
// 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
// 将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);
//将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject);
代码语言:javascript复制// 1.测试将一个【对象】转换成【json字符串】
String jsonString = JSONObject.toJSONString(new Student("中国",66));
System.out.println("********测试将一个【对象】转换成【json字符串】********");
System.out.println(jsonString);
// 2.测试将一个【json字符串】转换成【对象】
Student person1 = JSONObject.parseObject(jsonString, Student.class);
System.out.println("********测试将一个【json字符串】转换成【对象】********");
System.out.println(person1);
// 3.测试将【多个对象】转换成【json字符串数组】
String jsonString1 = JSONArray.toJSONString(Arrays.asList(new Student("测试2",19), new Student("测试3", 20)));
System.out.println("********测试将【多个对象】转换成【json字符串数组】********");
System.out.println(jsonString1);
// 4.测试将【josn字符串数组】转换成多个对象
List<Student> people = JSONArray.parseArray(jsonString1, Student.class);
System.out.println("********测试将【josn字符串数组】转换成多个对象********");
System.out.println(people);