我有一段代码:
HttpResponse<JsonNode> response = Unirest.post("https://json.islandia.com/v1/martorell")
.basicAuth("624823", "8f1addd21a09d6b95eaefa8d60p4c05")
.field("day", "28")
.asJson();
Root newJsonNode = new ObjectMapper().treeToValue(response.getBody(), Root.class);
字符串
但我有这个错误:第一个月
1条答案
按热度按时间bfhwhh0e1#
考虑到
ObjectMapper#treeToValue()
确实存在,请在文件开始时检查导入:字符串
如果您没有看到这些导入,这可以解释错误消息。
确保将Jackson libraries正确添加到项目的类路径中。您可以在Maven的pom.xml中添加以下依赖项:
型
如果我尝试使用
convertValue
,我会得到:型
因此,您正在尝试序列化一个
ByteArrayInputStream
对象,Jackson不知道如何在默认情况下序列化该对象。HttpResponse.getBody()
可能 * 不 * 返回JsonNode类型:相反,它可能会返回一个InputStream,需要手动将其转换为JsonNode,然后才能使用Jackson的转换功能。例如:
型
在这里,HTTP响应的主体是一个InputStream,首先使用ObjectMapper将其转换为JsonNode对象。
readTree()
. * 然后 *,使用ObjectMapper.treeToValue()
将JsonNode转换为Root对象。Root类应该是一个POJO,它与您正在使用的JSON结构相匹配。如果没有,您可能会遇到更多的错误。