2016-04-30 3 views
0

私のアプリケーションでspring-framework 4.2.5Jackson 2.6.3を使用しています。適切なserializerエンティティには@jsonViewを使用します。しかし、deserializerでは正しく動作しません。たとえば、私は次のように実体を持っている:私はこの方法に従ってJSONを送信するとジャーナルの直列化解除のプロパティが@JsonViewで正しく機能しない

@RestController 
@RequestMapping("/a") 
public class AController { 

    @RequestMapping("/add") 
    @JsonView(View.Summary.class) 
    public void add(@RequestBoddy A a) 
    { 
     // do Something 
    } 

} 

public class A { 

    @JsonView(View.Summary.class) 
    private int a; 

    @JsonView(View.Detail.class) 
    private int b 

    /* 
    * Getters And Setters 
    */ 
} 

は今、私は以下のように、コントローラを持って

{ 
    "a": 1, 
    "b": 2 
} 

ので私はこのメソッドのためにView.Summary.classJsonViewを使用します。それはbを無視しなければなりませんが、そうではありません。

は、私は次のように、オブジェクトマッパーで設定を使用します。 問題ある objectMapper.enable(DeserializerFeature.FAIL_ON_IGNORED_PROPERTIES)

+1

アノテーションがJsonViewでないことを確認してください。 – Joeblade

答えて

1

パラメータの使用@JsonView(View.Summary.class)

@RequestMapping("/add") 
public void add(@RequestBoddy @JsonView(View.Summary.class) A a) { 
    // do Something 
} 

そしてまた、あなたのDTO秒間のNullableタイプを使用します。それ以外の場合は

public class A { 
    @JsonView(View.Summary.class) 
    private Integer a; 

    @JsonView(View.Detail.class) 
    private Integer b 

    /* 
    * Getters And Setters 
    */ 
} 

、あなたが言うことができなくなりますデフォルト値および値がありません離れています。

+1

JsonViewではなくJsonViweですか? – Joeblade

+0

それは指摘のためにタイプミスでした。 –

関連する問題