大家都知道restful webservice中普遍以json进行数据传输,接口层面需要进行序列化和反序列化,这时候使用jackson可以很方便的把json字符串反序列化成java对象,或者一键把java对象序列化成json字符串。
但是对于一些以xml进行传输数据的web服务,我们也需要进行java对象的序列化和反序列化,这时候就可以使用JAXB进行类似jackson的一键转换。
首先第一步需要根据xml节点定义出java对象,节点有多少层次就定义多少对象。然后把xml的子节点定义成上级节点对象的一个属性,用@XmlElement注解表示节点属性,用@XmlRootElement注解整个类,这里需要注意一个坑,就是对于javabean的getter方法,需要加@XmlTransient注解,不然转换的时候会报属性名称重复的错误。

如果xml中节点名称与java对象属性名称不一致,可以在注解旁边加name取别名。
然后编写一个XmlUtils处理类,就可以自动进行序列化和反序列化啦

网友评论