JSON集合嵌套可以直接转化为对象吗

北方蛮子 发布于 2013/01/11 14:53
阅读 4K+
收藏 0

我有一个JSON字符串,

与之对应的对象是:(简写)

class A {

    List<B>  bs

}

class B{

    List<C> cs

}

class C{

    List<D> ds

}

class D{

    String name;

}

然后从前台传过来的字符串也是符合这个要求的

现在我想把字符串直接转换成对象

String s = json字符串;

JSONObject obj = JSONObject.fromObject(s);  
Map<String, Class> cmap = new HashMap<String, Class>();
cmap.put("bs", B.class);
//cmap.put("cs", C.class);     这是一!
A bean = (A)obj.toBean(obj, A.class,cmap);   
List list = bean.bs();
for(int i=0;i<list.size();i++){
   LinkOpMessage b = (LinkOpMessage)list.get(i);
   System.out.println(b.getOpMessages().size());           //
   System.out.println(b.getOpMessages().get(0).getOperactionId());     //
  }

现在呢,如果我不加一 的 代码

就报:net.sf.ezmorph.bean.MorphDynaBean

我要是加上 一 的代码

就报:beanClass is an interface. interface java.util.List

请问这种嵌套方式可以直接转换为对象吗

该怎么解决,求教!

加载中
0
震秦
震秦
基本上都可以转回来,但是解析json的库有很多种,不知道你用的那个支持否? fastjson, net.sf.json-lib都可以的.
0
北方蛮子
北方蛮子
好吧,找到答案了,在MAP里没写全,我把所有的集合类全写进去,就好了
0
ChanLamsion
ChanLamsion
请问解决方案的具体代码是?
返回顶部
顶部