[我目前有将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.forName()
方法? (https://www.tutorialspoint.com/java/lang/class_forname_loader.htm)
[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)