我们得到了一些json字符串,需要将其转换为某个类的实例,该类是某个第三方jar的一部分(将即时下载),而该类不在类路径中。
这里的问题是
我们得到了以下的杰森
{
"a" :{
"nameType":"firstNameType"
},
"b":{
"nameType":"lastNameType"
}
}
jar中的java类的类结构如下
class A{
private String nameType;
// getters and setters are avaiable
}
class B{
private A a;
private A b;
// getters and setters
}
当我们在json上反序列化到类B时,出现在“ b.b.nameType”中的值是“ firstNameType”,而不是“ lastNameType”。
下面是代码段。
ClassLoader classLoader = TestClass.class.getClassLoader();
ClassLoader loader =
new URLClassLoader(new URL[] { new
File("/Users/asdasd3414234d/Downloads/Default" +
".jar").toURI().toURL() }, classLoader);
ObjectMapper objectMapper = new ObjectMapper();
TypeFactory typeFactory =
TypeFactory.defaultInstance().withClassLoader(loader);
objectMapper.setTypeFactory(typeFactory);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,
false);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Object obj = objectMapper.readValue(content,Class.forName("defaulttermlibrary.AmlTransaction",true,loader));
System.out.println(obj);
有人可以帮我吗