XStream反序列化JSON出的郁闷问题,急啊

haixiang710 2010-12-14 11:36:53
有两个实体bean
ResData .java

public class ResData {
private String retCode;
private String retMessage;
private ArrayList funds;
get set... ...
}


Fund.java

public class Fund {
private String name;
private String age;
get set... ...
}


MyTest.java

public class MyTest {
Fund fund1 = new Fund();
fund1.setName("zs");
fund1.setAge("20");
Fund fund2 = new Fund();
fund1.setName("ls");
fund1.setAge("22");

ArrayList funds = new ArrayList();
funds.add(fund1);
funds.add(fund2);

ResData data = new ResData();
data.setRetCode("007");
data.setRetMessage("Over");
data.setFunds(funds);

//将bean序列化成json
XStream xStream = new XStream(new JsonHiberarchicalStreamDriver());
xStream.alias("ResData",ResData.class);
xStream.alias("funds",Fund.class);
String json = jsonStream.toXML(data);
System.out.println(json);

//将json反序列化成bean(结果报错)
XStream beanStream = new XStream(new JettisonMappedXmlDriver());
beanStream.alias("ResData",ResData.class);
beanStream.alias("funds",Fund.class);
ResData conData = (ResData)beanStream.fromXML(json);
}

将bean序列化成json时可以,打印出:
{"ResData":{"retCode":"007","retMessage":"over","funds":[{"name":"zs","age":"20"},{"name":"ls","age":"22"}]}}

而json反序列化为bean时那样转不行,请问该怎么反序列化,能让程序知道ResData对应ResData.class
但怎么让程序知道"funds":[{"name":"zs","age":"20"},{"name":"ls","age":"22"}]
是一个Fund类的集合...
急啊....

...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
haixiang710 2010-12-16
  • 打赏
  • 举报
回复
用你的方法试了.OK了..
谢谢
gameover710 2010-12-16
  • 打赏
  • 举报
回复
把bean to json的
XStream xStream = new XStream(new JsonHiberarchicalStreamDriver());
改成
XStream xStream = new XStream(new JettisonMappedXmlDriver());

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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