天天看点

springboot xml转Bean

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