我目前有代码将 JSON 字符串映射到 API 的类,但是我需要代码将 JSON 映射到运行时由类名给出的不同类,而不是一个硬编码的类名。
这是我当前的代码:
ObjectMapper aObjectMapper = new ObjectMapper();
aClass request = aObjectMapper.readValue(String, aClass.class);
哪个工作正常。
现在不是aClass
,我希望能够映射到任何泛型类名,但是尝试类似
Class theRandomClass = theRandomClass.class;
theRandomClass.getClass() request = aObjectMapper.readValue(String,
theRandomClass.getClass()) //gives an error
知道如何解决这个问题吗?非常感谢。
Class theRandomClass = theRandomClass.class;
将java.lang.Class
对象分配给theRandomClass
。
这意味着
aObjectMapper.readValue(String, theRandomClass.getClass())
将尝试将 JSON 字符串反序列化为java.lang.Class
对象。如果不清楚问题是什么,那么请注意,程序不能只是创建java.lang.Class
实例,因此 Jackson 将无法反序列化字符串。
你需要的是
aObjectMapper.readValue(String, theRandomClass)