如何使用JSON Jersey从String格式解组嵌套Object

时间:2012-08-07 12:42:14

标签: java json jersey marshalling jackson

我知道有类似的问题,但其中任何一个对我来说都是有用的(或似乎是)。

我需要执行以下语句:

ClassA a = new ClassA(); 
String JSON_str = objectMapper.writeValueAsString(a);

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class);
ClassB b = (ClassB)a1.getAttribute1();

如果我执行上述代码,则会收到以下错误:

java.util.LinkedHashMap无法转换为ClassB

方法getAttribute1返回定义为“Object attribute1”的ClassA attribute1。 它将在运行时使用类B的对象进行初始化。

请帮帮我^^。

提前谢谢你。   莱昂纳多

1 个答案:

答案 0 :(得分:0)

如错误所示,a1.getAttribute1()返回java.util.LinkedHashMap类型的对象。因此,要么将代码更改为:

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class);
java.util.LinkedHashMap b = (java.util.LinkedHashMap)a1.getAttribute1();

或者检查填充此字段的ClassA中的代码,并尝试理解为什么它没有用ClassB实例伪装对象。