135-1821-9792

XML和JSON是怎么互相转换

本篇内容主要讲解“XML和JSON是怎么互相转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XML和JSON是怎么互相转换”吧!

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的九原网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

依赖

在Spring Boot或者Spring Cloud的 Web 项目中只需要引入:

     com.fasterxml.jackson.dataformat     jackson-dataformat-xml 

这个是 jackson 的的 XML 格式化模块,已经自动加入了依赖池。

XML 与 Java 对象互转

XML 和 JSON 互相转换的流程都是先转换为 Java 对象,然后再转换为目标类型。

XmlMapper

XML 转对象需要定义一个XmlMapper,这个对应了转换 JSON  的ObjectMapper,甚至XmlMapper是ObjectMapper的子类。我们来声明一个XmlMapper,你可以new一个,如果你采用了默认的配置的话。

XmlMapper xmlMapper = new XmlMapper();

如果你需要定制推荐使用建造者的方式,比如下面:

XmlMapper build = XmlMapper.builder()                 //  忽略实体类没有对应属性    如果为 true 会抛出异常                .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false)                // 忽略null                .serializationInclusion(JsonInclude.Include.NON_NULL)                // 属性使用 驼峰首字母小写                .propertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE)                .build();

演示

接下来我们来用一个 DEMO 进行演示,先定义一个test.xml的 XML 文件,内容为

      felord.cn     18     ]]> 

比转义字符要香的多,可读性更强。

对应的实体类为:

@Data public class User {  private String username;  private Integer age;  // private String created; }

然后利用上面构造的builder来进行转换操作:

ClassPathResource classPathResource = new ClassPathResource("./test.xml"); User user = build.readValue(classPathResource.getFile(), User.class); // Java  User(username=felord.cn, age=18, created=<2020-10-22>) System.out.println("xml file to Java Object " + user); String s = build.writeValueAsString(user); // felord.cn18<2020-10-22> System.out.println("Java Object to xml string " + s); User u = build.readValue(s, User.class); // Java User(username=felord.cn, age=18, created=<2020-10-22>) System.out.println("xml string to Java Object" + u);

既然能够转对象那么再转 JSON 也没啥难度了。

当然也支持注解的方式。

到此,相信大家对“XML和JSON是怎么互相转换”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


分享标题:XML和JSON是怎么互相转换
URL地址:http://kswsj.com/article/pjedog.html

其他资讯



Copyright © 2009-2022 www.kswsj.com 成都快上网科技有限公司 版权所有 蜀ICP备19037934号