[英]Overriding JSON Response in Jackson
我想通过Jackson序列化我的Foo
接口:
public interface Foo { }
它有两个实例:标准和调试响应。 我只会显示Standard
回答,因为它足以传达我的问题。
public class FooRegular implements Foo {
private int number;
public FooRegular(final int number) { this.number = number; }
@JsonProperty("NUM")
public getNumber() {
return number;
}
}
请注意,我在Controller类中返回了Foo
:
public Response sendResponse() {
Foo foo = getFoo(); // returns FooRegular
return buildResponse(foo); // returns some Response with `foo` as its body
}
但是,我的答复是:
{ number : 1234 }
我看着这个答案 ,这是我尝试过的,但是没有看到预期的结果。
如何覆盖JSON响应以使键为NUM
而不是number
?
我用ObjectMapper
尝试了FooRegular
类,并且您的JsonProperty
注释工作正常。 在不知道您的buildResponse
方法是什么样的情况下,我只能假设问题出在那儿。
您可以为您的资源方法尝试以下方法之一:
public Foo sendResponse() {
return getFoo();
}
要么
public Response sendResponse() {
Foo foo = getFoo();
ObjectMapper mapper = new ObjectMapper();
String foostr = mapper.writer().writeValueAsString(foo);
return Response.ok().entity(foostr).build();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.