带jaxb注解的xml快速增加json注解

解决由xsd生成的pojo类属性与所需大写jsonkey不匹配的问题,通过正则表达式批量添加json注解实现自动转换。

背景:

通过eclipse的jaxb根据xsd文件生成了对应的pojo类,然后需要根据pojo生成对应的json文件。 由于xsd定义的标签都是大写,要求最后生成的json文件保持key一致大写。

问题在于自动生成的pojo均以小写作为属性,因此默认转换后的json key为小写。要保持原来xml一致必须标注json的注解。

面临问题

生成的类非常多,每个属性手动加json注解,工作量超级庞大而且容易出错疏漏。

解决方案

由于pojo是由xsd自动生成的带了jaxb规范的xml属性注解,因此想到的方法是正则表达式搜索替换xml属性注解。
以下为需要搜索替换的字符串正则表达式。

@XmlElement\(name = "(\w+)", required = true\)
@XmlElement\(name = "$1", required = true\)\n    @JsonProperty("$1")

@XmlElement\(name = "(\w+)"\)
@XmlElement\(name = "$1"\)\n    @JsonProperty("$1")

@XmlValue
@XmlValue\n    @JsonProperty("VALUE")

@XmlAttribute\(name = "(\w+)"\)
@XmlAttribute(name = "$1")\n    @JsonProperty("$1")


@XmlAttribute\(name = "(\w+)", required = true\)
@XmlAttribute\(name = "$1", required = true\)\n    @JsonProperty("$1")

最后每个java文件导入package

import com.fasterxml.jackson.annotation.JsonProperty;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值