Jackson读取xml
需要添加的依赖
<!--lombok--构造器,getter,setter快捷生成>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
<scope>provided</scope>
</dependency>
<!--解析xml-->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.8.8</version>
</dependency>
需要读取的xml数据样例
<ROOT>
<TEST>123</TEST>
<HEAD>
<TEST1>
<DATA>456</DATA>
<DATA>759</DATA>
</TEST1>
</HEAD>
</ROOT>
实体层
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zdsg
* @date 2020/11/11
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@JacksonXmlRootElement(localName = "ROOT")
public class RequestParams {
@JacksonXmlProperty(localName = "TEST")
private String test;
@JacksonXmlProperty(localName = "HEAD")
private Head head;
}
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zdsg
* @date 2020/11/15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Head {
@JacksonXmlProperty(localName = "TEST1")
private Data1 test;
}
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author zdsg
* @date 2020/11/15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Data1 {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "DATA")
private List<String> dataStr;
}
访问层
/**
* @author zdsg
* @date 2020/11/11
*/
@RestController
public class OracleController {
@Autowired
OracleService oracleService;
@RequestMapping(value = "/api", method = RequestMethod.POST, consumes = "application/xml", produces = "application/xml")
public RequestParams findInfo(@RequestBody RequestParams requestParams){
return requestParams;
}
测试结果