[英]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.