Java 如何使用JSON从字符串格式中解组嵌套对象

Java 如何使用JSON从字符串格式中解组嵌套对象,java,json,jersey,marshalling,jackson,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(); 如果我执行上述代码,我将收到以下错误

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

我需要执行以下语句:

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的对象初始化

请帮帮我

先谢谢你。
Leonardo

如错误所示,
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
实例来计算对象。

您好,谢谢您的回答,但问题不在于我填充对象a的方式,问题在于“readValue”函数,该函数出于某种原因分配了“LinkedHashMap”除非
objectMapper
是您编写的某个类,否则对此您无能为力,我只是指出了问题所在,您可以将强制转换更改为
java.util.LinkedHashMap
,然后手动从中读取值并将其设置为ClassB的对象