java 反射解析xml,利用JAVA反射機制解析XML數據到實體

XML和JSON是我們常見的服務端與客戶端數據交互的方式,解析的方法也多種多樣,這里介紹的是利用JAVA反射的機制來解析XML到實體。代碼很簡單,看下就明白,有什么改進的建議可以在下面評論,下面貼代碼:

public static List readJingDian(String xmlStr, T t) {

List list = new ArrayList();// 創建list集合

try {

Document doc = DocumentHelper.parseText(xmlStr);

Element root = doc.getRootElement();// 獲得根節點

Element bodyRoot;// body節點

Field[] properties = t.getClass().getDeclaredFields();// 獲得實例的屬性

// 實例的set方法

Method setmeth;

bodyRoot = root.element("body");

Element element2 = bodyRoot.element("orderList");

List lists = element2.elements("order");

for (Element element : lists) {

// Element next = (Element) l.next();

AttractionsOrderEntity t1 = new AttractionsOrderEntity();

for (int j = 0; j < properties.length; j++) {

// 遍歷所有孫子節點

// 實例的set方法

setmeth = t1.getClass().getMethod(

"set"

+ properties[j].getName()

.substring(0, 1).toUpperCase()

+ properties[j].getName().substring(1),

properties[j].getType());

// properties[j].getType()為set方法入口參數的參數類型(Class類型)

setmeth.invoke(t1,

element.elementText(properties[j].getName()));// 將對應節點的值存入

}

list.add(t1);

}

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值