用Jackson json跳过一个抽象层次

时间:2014-01-27 12:15:22

标签: java json jackson

我有这样的课程

public class Profile {
  Profile profile
  Interests interests
}


public class Interests {
  HashMap<String,InterestMetric> interests = ...
}

如果我尝试使用jackson将其序列化为json:

{
  profile:...
  interests: 
    {
       interests:...
    }
}

有没有办法避免在没有自定义序列化器(注释)的情况下创建2个兴趣标签?

1 个答案:

答案 0 :(得分:2)

是:

public class Profile {
  Profile profile;
  HashMap<String,InterestMetric> interests = ...
}

如果它只包含Map,为什么还需要第二个类?

并且第二个想法......为什么Profile包含个人资料?它不应该只包含在配置文件中汇总的信息吗?

编辑: 由于您提到代码库不会更改,@JsonUnwrapped annotation应该是您要查找的内容:

public class Profile {
  Profile profile
  @JsonUnwrapped
  Interests interests
}


public class Interests {
  HashMap<String,InterestMetric> interests = ...
}

我无法从我的位置测试它,但它应该将输出更改为:

{
  profile:...
  interests:...
}