当前位置: 首页 > 科技观察

XML和JSON的转换就是这么简单

时间:2023-03-12 04:42:05 科技观察

1。前言最近一直在折腾手机支付,手机支付,支付宝支付,银联支付,还有国外的PayPal。一些支付系统仍然使用XML的数据格式,不符合我们现在流行的JSON格式。起初我使用DOM4J,一个古老的XML解析库。写完DEMO,有人告诉我Jackson更简单。我试了一下,确实比较方便简单,分享给大家。2、依赖SpringBoot或SpringCloud的Web项目只需要引入:com.fasterxml.jackson.dataformatjackson-dataformat-xml这是Jackson的XML格式化模块,已自动添加到依赖池中。3、XML与Java对象的转换XML与JSON的转换过程是先转换为Java对象,再转换为目标类型。将XmlMapperXML转换为对象,需要定义一个XmlMapper,它对应于转换JSON的ObjectMapper,甚至XmlMapper是ObjectMapper的子类。让我们声明一个XmlMapper,如果你使用默认配置,你可以创建一个新的。XmlMapperxmlMapper=newXmlMapper();如果需要自定义builder的推荐使用方式,比如如下:XmlMapperbuild=XmlMapper.builder()//忽略实体类没有对应的属性,为true则抛出异常。configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false)//忽略null.serializationInclusion(JsonInclude.Include.NON_NULL)//属性使用驼峰首字母小写.propertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE).build();演示下面我们用一个DEMO来演示一下,先定义一个测试。xmlXML文件,内容为felord.cn18]]>比转义字符更香、更易读。对应的实体类为:@DatapublicclassUser{privateStringusername;privateIntegerage;//privateStringcreated;}然后使用上面构造的builder进行转换操作:ClassPathResourceclassPathResource=newClassPathResource("./test.xml");Useruser=build.readValue(classPathResource.getFile(),User.class);//JavaUser(username=felord.cn,age=18,created=<2020-10-22>)System.out.println("xmlfiletoJavaObject"+user);Strings=build.writeValueAsString(user);//felord.cn18<2020-10-22>System.out.println("JavaObjecttoxmlstring"+s);Useru=build.readValue(s,User.class);//JavaUser(username=felord.cn,age=18,created=<2020-10-22>)System.out.println("xmlstringtoJavaObject"+u);既然可以转换对象,那么转换JSON就不难了。当然,也支持注解。4.总结Jackson类库是SpringBoot默认集成的JSON库,它甚至不仅仅是一个JSON库,它还可以用来处理XML。集成XML操作功能也非常简单,使用起来也不是很复杂。在我看来,最大的优势就是不需要引入其他额外的框架来处理,开发和维护系统的依赖类型最少,是最省心的。本文转载自微信公众号“码农小胖哥”,可通过以下二维码关注。转载本文请联系码农小胖公众号。