XML和Java對象互轉實現(XStream方式)


1、引入Maven依賴


<dependency>  
 <groupId>com.thoughtworks.xstream</groupId>  
 <artifactId>xstream</artifactId>  
 <version>1.4.18</version>  
</dependency>

2、測試代碼

2.1 基礎類

package com.MyModel;  
  
public class MyBeanXStreamXml {  
  
 private String name;  
    private String id;  
    private String age;  
  
    public String getName() {  
 return name;  
    }  
  
 public void setName(String name) {  
 this.name = name;  
    }  
  
 public String getId() {  
 return id;  
    }  
  
 public void setId(String id) {  
 this.id = id;  
    }  
  
 public String getAge() {  
 return age;  
    }  
  
 public void setAge(String age) {  
 this.age = age;  
    }  
}

2.2 測試代碼


package com.TestArch;  
  
import com.MyModel.MyBeanXStreamXml;  
import com.alibaba.fastjson.JSON;  
import com.thoughtworks.xstream.XStream;  
import com.thoughtworks.xstream.security.AnyTypePermission;  
import lombok.SneakyThrows;  
  
public class TestXMLByXStream {  
 @SneakyThrows  
 public static void main(String args[]) {  
 MyBeanXStreamXml myBeanXml = new MyBeanXStreamXml();  
        myBeanXml.setAge("28");  
        myBeanXml.setId("01");  
        myBeanXml.setName("PHC");  
        // 對象轉 XML System.out.println("----------對象轉 XML-------------------");  
        XStream xStream = new XStream();  
        String xml = xStream.toXML(myBeanXml);  
        System.out.println(xml);  
  
        System.out.println("----------對象轉 XML:修改根節點標識-------------------");  
        xStream.alias("ROOT", MyBeanXStreamXml.class);  // 修改根節點標識  
 String xml2 = xStream.toXML(myBeanXml);  
        System.out.println(xml2);  
  
        System.out.println("----------XML 字符串轉對象-------------------");  
        XStream xStreamForStr = new XStream();  
        xStreamForStr.addPermission(AnyTypePermission.ANY); //沒有這行會報錯:com.thoughtworks.xstream.security.ForbiddenClassException  
 MyBeanXStreamXml person2 = (MyBeanXStreamXml) xStreamForStr.fromXML(xml);  
        System.out.println("" + JSON.toJSONString(person2));  
    }  
}

3、測試代碼輸出

4、GitHub代碼提交記錄:

1、XML和對象的相關轉換(XStream方式); · NullTommy/hello@537337d

5、參考

[參考: xstream異常com.thoughtworks.xstream.security.ForbiddenClassException_夜空中最亮的開心顏7的博客-CSDN博客 https://blog.csdn.net/weixin_42228939/article/details/95890201 ]
[參考: XStream使用詳解 - 技術江湖-小煥 - 博客園 https://www.cnblogs.com/LiZhiW/p/4313493.html ]
[參考: XStream的簡單使用_小異常的博客-CSDN博客 https://blog.csdn.net/sun8112133/article/details/90482307 ]


免責聲明!

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



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