您可以使用Jackson值注入功能将不属于输入JSON的对象引用作为构造函数参数传递。这是一个例子:
public class JacksonInjectExample { private static final String JSON = "{"field1":"value1", "field2":123}"; // HttpResponse in your case public static class ExternalObject { @Override public String toString() { return "MyExternalObject"; } } public static class Bean { // make fields public to avoid writing getters in this example public String field1; public int field2; private ExternalObject external; public Bean(@JacksonInject final ExternalObject external) { this.external = external; } @Override public String toString() { return "Bean{" + "field1='" + field1 + ''' + ", field2=" + field2 + ", external=" + external + '}'; } } public static void main(String[] args) throws IOException { final ObjectMapper mapper = new ObjectMapper(); final Injectablevalues.Std injectablevalues = new Injectablevalues.Std(); injectablevalues.addValue(ExternalObject.class, new ExternalObject()); mapper.setInjectablevalues(injectablevalues); final Bean bean = mapper.readValue(JSON, Bean.class); System.out.println(bean); }}输出:
Bean{field1='value1', field2=123, external=MyExternalObject}


