簡體   English   中英

在Jackson中重寫JSON響應

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM