Obj与Str之间的相互转换

来源:互联网 发布:mac chrome书签导出 编辑:程序博客网 时间:2024/06/05 22:31

1.准备实体类Persion,

例子如下:

@XStreamAlias("Persion")
public class Persion {
@XStreamAsAttribute
private String version = "1.0";
@XStreamAsAttribute
private String encode = "utf-8";
@XStreamAlias("fristName")
private String fristName;
@XStreamAlias("lastName")
private String lastName;
@XStreamAlias("telPhone")
private String telPhone;

}

提供get和set方法;

Xstream标签请参考:http://www.cnblogs.com/XL-Liang/archive/2013/03/22/2974987.html

2.编写工具类:

public class XMLUtil {


/**Obj TO XML*/
public static String toXMl(Object obj){
/**设置编码方式*/
XStream xStream = new XStream(new DomDriver("utf-8"));
xStream.processAnnotations(obj.getClass());
return xStream.toXML(obj);
}

/**String to Obj*/
public static<T> T toBean(String xmlStr,Class<T> cls){
XStream xStream = new XStream(new DomDriver());
xStream.processAnnotations(cls);
T obj = (T)xStream.fromXML(xmlStr);
return obj;
}

}

3.测试:

方法obj2String :

@Test
public void testObjToString(){
Persion per = new Persion("张三","李四","13960470908");
String xMl = XMLUtil.toXMl(per);
log.info(xMl);
}

测试结果:

<Persion version="1.0" encode="utf-8">
  <fristName>张三</fristName>
  <lastName>李四</lastName>
  <telPhone>13960470908</telPhone>
</Persion>

方法String 2 Obj:

@Test
public void strToObj(){
String str = "<Persion version='1.0' encode='utf-8'>"
+ "<fristName>张三</fristName>"
+ "<lastName>李四</lastName>"
+ "<telPhone>13960470908</telPhone>"
+ "</Persion>";
Persion bean = XMLUtil.toBean(str, Persion.class);
System.out.println(JSONObject.toJSONString(bean));
}

测试结果:{"fristName":"张三","lastName":"李四","telPhone":"13960470908"}

原创粉丝点击