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)); } }