执行下面的代码时,我遇到了com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No value type configured for ObjectReader
问题。
Jackson版本为jackson-databind-2.9.9.jar
public <T> T parsingData(String body) {
try {
return getObjectMapper().reader().readValue(body);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
我在printStackTrace
中遇到了以下精确的异常,并可以在异常中找到暴露的String body
。
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No value type configured for ObjectReader
at [Source: (String)"{
"timestamp": "2019-06-04T09:36:50.086+02:00",
"path": "/api/check/85358/checking/246syb-f3f2-4756-91da-dae3e8ce774b/test/22462da-c4e2-45ca-bd27-246/rows/8bc3965a-ae22-4d7f-b770-262sgs24/port",
"status": 400,
"error": "Internal Server Error",
"message": "[owner.firstName2:size:1:30, owner.lastName2:size:1:30]",
"errorCode": 200000
}
"; line: 1, column: 1]
更新:请问为什么我会收到这个异常?是因为我没有提供Class
或TypeReference
吗?
getObjectMapper().readValue(body, clazz);
。如果不提供Class
或TypeReference
,则无法读取对象。如果想要在不提供类的情况下读取JSON
,则只能期望得到Map
或List
- 没有其他更多的选择。 - Michał Ziober