【问题标题】:How deserialize JSON object from HttpResponse using Jackson annotations?如何使用 Jackson 注释从 HttpResponse 反序列化 JSON 对象?
【发布时间】:2011-08-04 22:23:27
【问题描述】:

我正在使用 Apache http 类来调用一个 Web 服务,该服务在响应正文中返回一个 JSON 对象。我有一个映射到 JSON 对象的带有 Jackson 注释的 java 类。我想做这件事,但谷歌没有找到正确的样板。

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

【问题讨论】:

标签: java json jackson apache-httpclient-4.x


【解决方案1】:

你必须使用ObjectMapper:

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

(对象映射器实例可以重复使用,因此无需为每次反序列化创建一个新实例)

【讨论】:

  • 所有 Jackson 方法都有“readValue(source, type)”的形式,所以它有点遵循模式。并且在使用 IDE 时,自动补全对显示可能性有很大帮助(如果没有,需要检查 javadocs)
猜你喜欢
  • 2013-09-10
  • 2014-02-12
  • 1970-01-01
  • 2019-12-01
  • 2020-04-11
  • 2020-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
相关资源
最近更新 更多