Ext工具类:将对象或List转换为json格式或xml格式

[color=red][b]注意:[/b][/color]List中只有存放的是相应的Java对象,才能正确转换成json、xml格式
1、核心
package com.dreamoa.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.dreamoa.domain.Menu;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

import net.sf.json.JSONObject;

/**
* 数据转换工具类,用于将单个对象、List转换为json、xml格式的字符串
*/
public class ExtUtil {

/**
* 将list对象转换为json格式的数据
* @param totalNum,记录总数
* @param inList,需要转换的list
* @return
*/
public static String getJsonFromList(long totalNum,List inList){
Map<String, Object> map = new HashMap<String, Object>();
map.put("totalNum", inList.size());
map.put("resultList", inList);
JSONObject jsonObj = JSONObject.fromObject(map);
return jsonObj.toString();
}

/**
* 将单个对象转换为json格式,此对象不能为集合类型
* @param inObject
* @return
*/
public static String getJsonFromObject(Object inObject){
JSONObject jsonString = JSONObject.fromObject(inObject);
return jsonString.toString();
}

/**
* 将List转化为xml格式的数据
* @param totalNum
* @param inList,需要转换的list
* @return String
*/
public static String getXmlFromList(long totalNum,List inList){
Total total = new Total();
total.setTotalNum(totalNum);
//创建临时的List对象
List results = inList;
results.add(total);
//创建XStream对象
XStream xs = new XStream(new DomDriver());
//为所有的类创建别名,别名为不包含包名的类名
for (int i = 0; i < results.size(); i++) {
Class clzz = results.get(i).getClass();
//得到全限定类名
String fullName = clzz.getName();
//以"."分割字符串
String [] temp = fullName.split("\\.");
xs.alias(temp[temp.length-1], clzz);
}
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(results);
return xmlString;
}

/**
* 将一个Object对象转化为xml格式输出
* @param object
* @return
*/
public static String getXmlFromObject(Object object){
XStream xs = new XStream(new DomDriver());
Class clazz = object.getClass();
String [] temp = clazz.getName().split("\\.");
xs.alias(temp[temp.length-1], clazz);
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+xs.toXML(object);
return xmlString;
}

/**
* 将对象转换为表单数据加载需要的格式
* @param object
* @return
*/
public static String getLoadFormData(Object object){

return "";
}
public static void main(String[] args) {
Menu menu = new Menu();
menu.setName("name");
menu.setParentid("123");
Menu menu2 = new Menu();
menu2.setName("name2");
menu2.setParentid("1233");
List inList = new ArrayList();
inList.add(menu);
inList.add(menu2);
System.out.println(ExtUtil.getXmlFromList(inList.size(), inList));
}
}


2、Total.java
package com.hf.sfm.util;

import java.util.List;

/**
* 将List转化为xml时getXmlFromList(),用来存放记录总数
* @author Administrator
*
*/
public class Total {

private long totalNum;//记录总数
private List resultList;//要转换的List,也是转换后的结果集名称

public long getTotalNum() {
return totalNum;
}

public void setTotalNum(long totalNum) {
this.totalNum = totalNum;
}

public List getResultList() {
return resultList;
}

public void setResultList(List resultsList) {
this.resultList = resultsList;
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值