Java读写XML和JSON。
XML
XML是可扩展标记语言(eXtensible Markup Language)的缩写,常用于传输和存储数据。
例如,一个描述书籍的XML文档可能如下:
1 |
|
XML有几个特点:一是纯文本,默认使用UTF-8编码,二是可嵌套,适合表示结构化数据。
JSON
XML的特点是功能全面,但标签繁琐,格式复杂。在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构。
JSON是JavaScript Object Notation的缩写,它去除了所有JavaScript执行代码,只保留JavaScript的对象格式。一个典型的JSON如下:
1 | { |
JSON作为数据传输的格式,有几个显著的优点:
- JSON只允许使用UTF-8编码,不存在编码问题;
- JSON只允许使用双引号作为key,特殊字符用
\
转义,格式简单; - 浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。
因此,JSON适合表示层次结构,因为它格式简单,仅支持以下几种数据类型:
- 键值对:
{"key": value}
- 数组:
[1, 2, 3]
- 字符串:
"abc"
- 数值(整数和浮点数):
12.34
- 布尔值:
true
或false
- 空值:
null
浏览器直接支持使用JavaScript对JSON进行读写:
1 | // JSON string to JavaScript object: |
解析JSON使用Jackson。
引入以下Maven依赖:
1 | <dependency> |
可以使用下面的代码解析一个JSON文件:
1 | InputStream input = Main.class.getResourceAsStream("/book.json"); |
把JSON解析为JavaBean的过程称为反序列化。如果把JavaBean变为JSON,那就是序列化。要实现JavaBean到JSON的序列化,只需要一行代码:
1 | String json = mapper.writeValueAsString(book); |
本文作者:
Yao Zhu
发布时间: 2020-03-06
最后更新: 2020-03-06
本文链接: https://juoyo.github.io/posts/dbf2c8c0.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
发布时间: 2020-03-06
最后更新: 2020-03-06
本文链接: https://juoyo.github.io/posts/dbf2c8c0.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!