Java 将JSON反序列化到动态加载的类文件中

Java 将JSON反序列化到动态加载的类文件中,java,json,reflection,jackson,classloader,Java,Json,Reflection,Jackson,Classloader,我在JSON响应中从模式生成了POJO,编译并加载了从POJO生成的类,但在JSON响应反序列化时,我没有可以反序列化的实际类 MyClassLoader classLoader = new MyClassLoader(POJOGeneratorForJSON.class.getClassLoader()); Class parentJsonClass = classLoader.loadClass(topLevelclassName, classpathLoc); ObjectMapper

我在JSON响应中从模式生成了POJO,编译并加载了从POJO生成的类,但在JSON响应反序列化时,我没有可以反序列化的实际类

MyClassLoader classLoader = new MyClassLoader(POJOGeneratorForJSON.class.getClassLoader());

Class parentJsonClass = classLoader.loadClass(topLevelclassName, classpathLoc);

ObjectMapper mapper = new ObjectMapper();

byte[] jsonBytes = generator.getBytesFromURL(source);

if(jsonBytes != null){

    Object jsonObj = parentJsonClass.newInstance();
    jsonObj = mapper.readValue(jsonBytes, Class.class);
}
我得到的异常是:“
com.fasterxml.jackson.databind.JsonMappingException:无法从START\u对象标记中反序列化java.lang.Class的实例


我知道在
mapper.readValue()
中,我需要提供实际的类作为第二个参数,但不知道如何提供。有人能帮我解决问题吗?

关于
readValue
的第二个参数,您需要传递一个
实例来定义要读取的对象的类型。似乎您正在传递
类的类型本身。jackson无法从
jsonBytes
反序列化
对象。像这样的方法应该会奏效:

Object jsonObj = mapper.readValue(jsonBytes, parentJsonClass);

i、 e.从
jsonBytes

中读取一个类型为
parentJsonClass
的对象,非常感谢Manos…这很有效。。。。我的错。但我的最终需要是调用ParentJsonClass内部的方法(我们将对象作为ParentJsonClass),但其类型为Class而不是ParentJsonClass。您可以在这方面提供帮助吗?您可以使用
类parentJsonClass
对象jsonObj
强制转换为该类型。因此,如果有一个方法
foo()
say
parentJsonClass.cast(jsonObj.foo()使用上述方法,我只能看到对象级方法,而不能看到ParentJsonClass类中的方法。我的问题是,我甚至不知道班上的方法。尝试列出具有反射的类的公共方法。或者尝试
parentJsonClass.getMethods()