我想通过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 }
我查看了这个answer,这是我尝试过的,但我没有看到预期的结果。
如何覆盖JSON响应以使密钥为NUM
而不是number
?
答案 0 :(得分:0)
我使用FooRegular
尝试了您的ObjectMapper
课程,您的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();
}