XStream別名;元素轉屬性;去除集合屬性(剝皮);忽略不需要元素


city

package xstream;

public class City {
    private String name;
    private String description;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public City(String name, String description) {
        this.name = name;
        this.description = description;
    }
}

province

package xstream;

import java.util.ArrayList;
import java.util.List;

public class Province {
    private String name;
    private List<City> cities = new ArrayList<City>();
    
    public void addCity(City city){
        cities.add(city);
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List<City> getCities() {
        return cities;
    }
    public void setCities(List<City> cities) {
        this.cities = cities;
    }
    public Province(String name, List<City> cities) {
        super();
        this.name = name;
        this.cities = cities;
    }

    public Province() {}

    public Province(String name) {
        this.name = name;
    }
}

 測試類

 

package xstream;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.thoughtworks.xstream.XStream;

public class TestXStream {
    public List<Province> getProvinceList(){
        List<Province> provinceList = new ArrayList<Province>();
        
        Province p1 = new Province("北京");
        p1.addCity(new City("東城區","東城區"));
        p1.addCity(new City("西城區","西城區"));
        
        Province p2 = new Province("上海");
        p2.addCity(new City("徐匯區","徐匯區"));
        p2.addCity(new City("浦東新區","浦東新區"));
        
        provinceList.add(p1);
        provinceList.add(p2);
        
        return provinceList;
    }
    //--->原生版
    @Test
    public void fun(){
        List<Province> proList = getProvinceList();
        XStream xStream = new XStream();
        String xml = xStream.toXML(proList);
        System.out.println(xml);
    }

    //--->修改
    @Test
    public void fun1(){
        List<Province> proList = getProvinceList();
        XStream xStream = new XStream();
        
        //別名
        xStream.alias("china", java.util.List.class);
        xStream.alias("province", Province.class);
        xStream.alias("city", City.class);
        
        //把子元素變成父元素的屬性
        xStream.useAttributeFor(Province.class, "name");
        
        //去掉容器,"剝皮"
        xStream.addImplicitCollection(Province.class, "cities");
        
        //忽略不需要的屬性-xml的元素
        xStream.omitField(City.class, "description");
        
        String xml = xStream.toXML(proList);
        System.out.println(xml);
    }
    
}

 

子元素轉換成屬性


去掉集合元素("剝皮")


 

忽略不需要的元素

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM