Java 操作 XML(14)–jackson-dataformat-xml 使用

Jackson 除了可以处理 JSON,还可以用来处理 XML(jackson-dataformat-xml 模块),可以轻松完成 Java 对象和 XML 文档的互转;本文主要介绍使用 Jackson 来处理 XML,文中所使用到的软件版本:Java 1.8.0_321、Jackson 2.13.3。

1、简介

jackson-dataformat-xml 模拟 JAXB “代码优先” 的数据绑定方式,提供低级以及高级的方法来完成数据绑定工作。值得注意的是,jackson-dataformat-xml 的目标不是完整的 JAXB 克隆,或者成为一个通用的 XML 工具包。具体来说:

  • While XML serialization should ideally be similar to JAXB output, deviations are not automatically considered flaws (there are reasons for some differences)
  • What should be guaranteed is that any XML written using this module must be readable using module as well (“read what I wrote”): that is, we do aim for full round-trip support
  • From above: there are XML constructs that module will not be able to handle; including some cases JAXB (and other Java XML libraries) supports
  • This module also support constructs and use cases JAXB does not handle: specifically, rich type and object id support of Jackson are supported.

详情可参考官网文档:https://github.com/FasterXML/jackson-dataformat-xml.

2、Jackson 配置

注解 作用域 说明 实现时机 @JacksonXmlRootElement 类上 指定 XML 根标签的名字 序列化时 @JacksonXmlProperty 属性或getter/setter方法上 指定属性对应 XML 映射的名称 序列化和反序列化时 @JacksonXmlText 属性或getter/setter方法上 将属性直接作为未被标签包裹的普通文本 序列化和反序列化时 @JacksonXmlCData 属性或getter/setter方法上 将属性值包裹在 CDATA 标签中 序列化时 @JacksonXmlElementWrapper 属性或getter/setter方法上 类中有集合的属性时,是否生成包裹的标签 序列化时

3、具体使用

Original: https://www.cnblogs.com/wuyongyin/p/16553478.html
Author: 且行且码
Title: Java 操作 XML(14)–jackson-dataformat-xml 使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620294/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java创建对象的5种方式

    1、使用new关键字 2、利用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法 3、…

    Java 2023年6月7日
    045
  • 碎碎念六三

    08.01 八月,早安。 既要有宏观全局视野,又要能足够细致,明察秋毫。 人要活在现实中,又不可局限于现实里。 08.02 我不求深刻,只要简单。 在太阳底下等了30分钟的公交[破…

    Java 2023年6月9日
    064
  • 读经典【1】重构:改善既有代码的设计

    五星好评。很实用。 最近读了重构原版书,同时也在使用其中的一些技巧来改善工作中的项目,自己改完代码会有成就感。 这本书改变了我原有的思想钢印:代码能成功跑起来就不要去动它。实际上,…

    Java 2023年6月16日
    079
  • docker安装

    本文的安装系统环境:centos7.5 1.如果系统默认安装旧版的docker,可以先删除 yum -y remove docker docker-common container…

    Java 2023年6月8日
    075
  • 【Git 系列】一个超好用的命令你会用吗?

    stash在英文意思是隐藏。 git stash 的作用也是隐藏没完成的代码,防止它干扰 别人或者 新分支的工作。 一、背景 正在 dev 分支开发新功能,做到一半时有人过来反馈一…

    Java 2023年6月5日
    086
  • 邻接矩阵有向图(三)之 Java详解

    邻接矩阵有向图是指通过邻接矩阵表示的有向图。 上面的图G2包含了”A,B,C,D,E,F,G”共7个顶点,而且包含了” 上图右边的矩阵是G2在内…

    Java 2023年5月29日
    063
  • 漫谈gRPC:Google自研的rpc框架到底有什么神秘之处?

    ​原文链接:https://mp.weixin.qq.com/s/ah9gdutZueCxbqjrWVhiQg 本文概括性的介绍gRPC,包括gRPC的起源,核心特性,生态体系,以…

    Java 2023年6月8日
    084
  • c3p0

    1.导入jar包 导入这两个jar包 下载jar包地址:Maven Repository: Search/Browse/Explore (mvnrepository.com) (进…

    Java 2023年6月5日
    083
  • Java连载146-内存泄漏和容器

    内存溢出和内存泄漏的区别 内存溢出,就是我们在内存种分配了一块内存区域,但是当我添加了超出内存的数据的时候,就会导致溢出部分,覆盖了其他的内存,影响到了其他数据.内存溢出容易招致黑…

    Java 2023年6月13日
    074
  • Spring Boot

    Spring Boot 1 Spring Boot入门 1.1 Spring Boot特性: 能够快速创建基于 Spring 的应用程序 能够直接使用 java main 方法启动…

    Java 2023年6月13日
    063
  • BaseServlet抽取以及UserServlet和页面路径改写

    BaseServlet抽取 优化Servlet 减少Servlet的数量,现在是一个功能一个Servlet,将其优化为一个模块一个Servlet, 相当于在数据库中一张表对应一个S…

    Java 2023年6月6日
    091
  • JDK1.8 LongAdder 空间换时间: 比AtomicLong还高效的无锁实现

    我们知道,AtomicLong的实现方式是内部有个value 变量,当多线程并发自增,自减时,均通过CAS 指令从机器指令级别操作保证并发的原子性。 先看LongAdder的add…

    Java 2023年5月30日
    074
  • CSS基础总结

    CSS细化知识点总结 行内样式:只对它所修饰的元素起作用 语法:style=”属性1:值1;属性2:值2…属性n:值n” 样式的优先级:当有多个…

    Java 2023年6月8日
    069
  • SpringCloud系列之API网关(Gateway)服务Zuul

    1、什么是API网关 API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facet模式很像。…

    Java 2023年5月30日
    070
  • 一文学会Java事件机制

    相信做 Java 开发的朋友,大多都是学习过或至少了解过 Java GUI 编程的,其中有大量的事件和控件的绑定,当我们需要在点击某个按钮实现某些操作的时候,其实就是为这个按钮控件…

    Java 2023年6月8日
    075
  • springcloud–负载均衡(ribbon)

    springcloud–负载均衡(ribbon) 一、项目背景 搭建好的springcloud项目,包含erueka模块(这里是单个,也可以多个)、服务提供者(多个)、…

    Java 2023年6月16日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球