xml json

2021-02-06 17:15

阅读:429

标签:嵌套   table   doc   ack   switch   固定   stream   图片   des   

1 xml特征

  • 一是纯文本,默认使用UTF-8编码
  • 可嵌套
  • XML有固定的结构,首行必定是
  • 只有一个根节点
  • 遇见特殊字符必须转义

2 常见的转义

字符 符号
> >
& &
" "

3 使用DOM

DOM是Document Object Model的缩写,DOM模型就是把XML结构作为一个树形结构处理,从根节点开始,每个节点都可以包含任意个子节点。
这是一段xml

Java核心技术
    Cay S. Horstmann
    1234567JavaNetwork

解析后的dom如下
技术图片

4 使用dom api来解析xml

1,获取dom对象

InputStream input = Main.class.getResourceAsStream("/book.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(input);

2,遍历dom对象获得节点的属性和值,内容

void printNode(Node n, int indent) {
    for (int i = 0; i 

5 使用Jackson

使用Jackson可以轻松把解析到的xml封装到javabean中
,下面是一个代码

InputStream input = Main.class.getResourceAsStream("/book.xml");
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper mapper = new XmlMapper(module);
Book book = mapper.readValue(input, Book.class);
System.out.println(book.id);
System.out.println(book.name);
System.out.println(book.author);
System.out.println(book.isbn);
System.out.println(book.tags);
System.out.println(book.pubDate);

6 JSON

一个典型的json

{
    "id": 1,
    "name": "Java核心技术",
    "author": {
        "firstName": "Abc",
        "lastName": "Xyz"
    },
    "isbn": "1234567",
    "tags": ["Java", "Network"]
}

6-1 json优势

JSON只允许使用UTF-8编码,不存在编码问题;
JSON只允许使用双引号作为key,特殊字符用\转义,格式简单;
浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。

6-2 json支持的格式

键值对:{"key": value}
数组:[1, 2, 3]
字符串:"abc"
数值(整数和浮点数):12.34
布尔值:true或false
空值:null

6-3 序列化:Javabean转Json

InputStream input = Main.class.getResourceAsStream("/book.json");
ObjectMapper mapper = new ObjectMapper();
// 反序列化时忽略不存在的JavaBean属性:
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Book book = mapper.readValue(input, Book.class);

核心代码是创建一个ObjectMapper对象。关闭DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES功能使得解析时如果JavaBean不存在该属性时解析不会报错。

6-4 反序列化:json转javabean

String json = mapper.writeValueAsString(book);

xml json

标签:嵌套   table   doc   ack   switch   固定   stream   图片   des   

原文地址:https://www.cnblogs.com/hellosiyu/p/13111771.html

上一篇:JS中的迭代关系

下一篇:JSP概述


评论


亲,登录后才可以留言!