如何在封装设计中忽略json属性

时间:2015-05-15 08:56:20

标签: java jaxb jackson encapsulation

<head>

我想忽略class A{ private B b; //other properties //getter setter } // unable to add jsonIgnore in this class due to dependency in other module class B { int id; String name; String defname; } defnameA JSON课程中的codehaus.jackson {/ 1}}。

我需要{a:{id:value,name:value}}

1 个答案:

答案 0 :(得分:1)

您可以将Mixin用于此目的。

  • 首先使用JsonIgnore注释创建一个抽象类:

    abstract class MixIn{
         @JsonIgnore
         abstract String getDefname(); }
    
  • 然后使用如下。 (确保您的B类中的getName字段的getter名称为getDefName(),或者在您的Mixin类中将其更改为。)

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.addMixIn( B.class, MixIn.class );
    objectMapper.writeValue( System.out, new A() );
    

打印:

{"b":{"id":1,"name":"Sercan"}}