本篇内容主要讲解“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); //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); felord.cn 18 <2020-10-22>
既然能够转对象那么再转 JSON 也没啥难度了。
当然也支持注解的方式。
到此,相信大家对“XML和JSON是怎么互相转换”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!