gpt4 book ai didi

java - 将 JSON 反序列化为动态加载的类文件

转载 作者:行者123 更新时间:2023-11-30 06:41:44 24 4
gpt4 key购买 nike

我已经从 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_OBJECT token 中反序列化 java.lang.Class 实例

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

最佳答案

readValue 的第二个参数上,您需要传递一个 Class 实例来定义要读取的对象的类型。看来您正在传递 Class 本身的类型。并且 Jackson 无法从 jsonBytes 反序列化 Class 对象。像这样的东西应该有效:

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

即从 jsonBytes

读取 parentJsonClass 类型的对象

关于java - 将 JSON 反序列化为动态加载的类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44285511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com