xstream将对象转换为XML的问题

wzrlover 2006-03-27 10:23:01
为了实现对象与XML相互转换:
Map userMap=new HashMap();
userMap.put("name","test");
userMap.put("sex",new Integer(1));

XStream xstream=new XStream();
xstream.alias("User",Map.class);
xsteam.toXML(userMap);


得出的XML结果是:

<User>
<entry>
<string>sex</string>
<int>1</int>
</entry>
<entry>
<string>name</string>
<string>test</string>
</entry>
</User>

怎样才能得到:

<User>
<name>test</name>
<sex>1<sex>
</User>

但是通过JavaBean方式(如 User JavaBean),却可以得到理想结果,有人用过xstream吗?http://xstream.codehaus.org/
...全文
235 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzrlover 2006-03-28
  • 打赏
  • 举报
回复
我说了,用JavaBean是没问题,但是用Map,Collection等对象转换出来的就不是一回事啊,你可以试试,查看了xstream源码的test,MapConverter结果也是以下格式~~
<User>
<entry>
<string>sex</string>
<int>1</int>
</entry>
<entry>
<string>name</string>
<string>test</string>
</entry>
</User>
wizardblue 2006-03-28
  • 打赏
  • 举报
回复
楼主你这样的话,可能有岐义呢
<list>
<a>a</a>
<b>b</b>
<list>
那个这个<a>倒底是属性名呢,还是值呢?这个规则有问题
lydvqq 2006-03-28
  • 打赏
  • 举报
回复
/*
* Created on Mar 28, 2006
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.apach;

import java.util.*;

import com.thoughtworks.xstream.XStream;

/**
* @author YongDongLiang
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class XStreamTest {
public static void main(String[] args){
User user = new User();
user.setName("test");
user.setSex(1);

XStream xstream=new XStream();
xstream.alias("User",User.class);
System.out.println(xstream.toXML(user));
}
}
class User{
private String name;
private int sex;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setSex(int sex){
this.sex = sex;
}
public int getSex(){
return sex;
}

}
wzrlover 2006-03-28
  • 打赏
  • 举报
回复
如 list.add("a");
list.add("b");
<list>
<a>a</a>
<b>b</b>
<list>

list.add(userMap);
list.add(otherObject);
<list>
<user>
<name>test</name>
...
<user>
<otherObject>
....
</otherObject>
</list>

不过我想可能没有现成的工具可用,只能自己定个规则约束,可能不具备通用性~~
wizardblue 2006-03-28
  • 打赏
  • 举报
回复
还是自己写吧
你那里
<User>
<name>test</name>
<sex>1<sex>
</User>

name是key的名字,里边的value,即key对应该的值,map的话,通过调用entry.getKey()得到关键字名,再把值写进去就好了,我昨天本来已经写好一个了,就是不知道你的list要显示成什么样子
开发者开聊 2006-03-28
  • 打赏
  • 举报
回复
你那个userMap不是对象呀
wzrlover 2006-03-27
  • 打赏
  • 举报
回复
只要能实现任意对象与XML相互转换的工具与代码都可以!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧