springboot xml转Bean
首先SpringBoot需要引入Xstream依赖
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.10</version>
</dependency>
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("d")
public class City {
@XStreamAsAttribute
@XStreamAlias("d1")
private String cityId;
@XStreamAsAttribute
@XStreamAlias("d2")
private String cityName;
@XStreamAlias("d3")
@XStreamAsAttribute
private String cityCode;
@XStreamAsAttribute
@XStreamAlias("d4")
private String province;
@Override
public String toString() {
return "City [cityId=" + cityId + ", cityName=" + cityName + ", cityCode=" + cityCode + ", province=" + province
+ "]";
}
}
上面是Bean类
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
@XStreamAlias("c")
public class CityList {
@XStreamImplicit(itemFieldName="d")
private List<City> cityList;
public List<City> getCityList() {
return cityList;
}
public void setCityList(List<City> cityList) {
this.cityList = cityList;
}
}
下面是转换javaBean的代码
import com.thoughtworks.xstream.XStream;
public class Util {
public static Object toBean(Class<?> clazz, String xml) {
Object xmlObject = null;
XStream xstream = new XStream();
xstream.processAnnotations(clazz);
xstream.autodetectAnnotations(true);
xmlObject= xstream.fromXML(xml);
return xmlObject;
}
public static void main(String[] args) {
String str = "" +
"<c c1=\"0\">\r\n" +
" <d d1=\"101280101\" d2=\"广州\" d3=\"guangzhou\" d4=\"广东\"/>\r\n" +
" <d d1=\"101280102\" d2=\"番禺\" d3=\"panyu\" d4=\"广东\"/>\r\n" +
" <d d1=\"101280103\" d2=\"从化\" d3=\"conghua\" d4=\"广东\"/>\r\n" +
"</c>";
CityList c = (CityList)toBean(CityList.class,str);
System.out.println(c.getCityList().get(0));
}
}
更简单的方式参考:
https://blog.csdn.net/sheng_xinjun/article/details/80495778