如何使用Jackson注解从HttpResponse反序列化JSON对象?

35

我正在使用Apache http类调用一个返回JSON对象的Web服务,并将一个Jackson注释的Java类映射到JSON对象。我想做这样的事情,但谷歌没有找到正确的样板文件。

    String url = hostName + uri;
    HttpGet httpGet = new HttpGet(url);
    HttpResponse response = httpclient.execute(httpGet);
    MyObject myObject = (MyObject)response.getEntity().getContent();

阅读文档有所帮助:http://wiki.fasterxml.com/JacksonInFiveMinutes。 - JB Nizet
这个 HttpGet 和 HttpResponse 是异步调用吗? :D - gumuruh
1个回答

77

您需要使用 ObjectMapper

MyObject myObject = objectMapper.readValue(response.getEntity().getContent(), MyObject.class);

对象映射器实例可重复使用,因此每次反序列化无需创建新的实例。


所有的Jackson方法都有形如'readValue(source, type)'的形式,因此它遵循一种模式。当使用IDE时,自动完成功能可以帮助展示可能性(如果没有,则需要查看javadocs)。 - StaxMan
获取“无法从静态上下文引用非静态方法'readValue(java.io.InputStream,java.lang.Class <T>)'” - Collin
哇,我是个新手,我刚刚需要先执行 ObjectMapper objectMapper = new ObjectMapper(); - Collin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接