嗨,我正在为从我公司的通用框架中检索的用户对象编写Rest服务。

用户userobj = commonframework.getuser(userid); //用户是界面

问题是来自通用框架的用户对象具有一个对象,该对象带有2个用于字符串字段的getter的对象,例如“ isSomeflag()”和“ getSomeflag()”
我无法通过commonframework修改代码

我最终使用了** Jackson Mixins **,但是它抛出了stackoverflow错误。任何帮助将不胜感激。

下面的代码

    public abstract class IgnoreMixin {
    @JsonIgnore
    public abstract String isServiceOnlyflg();
}


使用方法:

@Produces(MediaType.APPLICATION_JSON)
public Response createUserInfo{
mapper = new ObjectMapper();
mapper.getSerializationConfig().addMixInAnnotations(DealerImpl.class,IgnoreMixin.class);
writer = mapper.writer().withDefaultPrettyPrinter();
return writer.writeValueAsString(userobj);
}


方法-2

我尝试创建具有类似属性的本地类,然后尝试将这些属性从用户对象映射到本地对象。
初始推断问题类在用户对象中仅被引用一次

但是问题是用户包含许多成员对象,这些成员对象又多次引用问题对象,因此我必须从框架用户结构中创建许多类的许多本地副本

任何解决方案

最佳答案

根据文档的说明,如果基类中的方法是
isSomeflag()getSomeflag()。你应该用

 @JsonProperty("newProp") abstract int isSomeflag()
 @JsonIgnore abstract int getSomeflag();


忽略其中一个,让另一个与JsonProperty一起编组。

也可能您处于需要使用jsonfilter中断的循环依赖项中,请选中此link

 FilterProvider filterProvider = new SimpleFilterProvider()
      .addFilter("filtermixin", SimpleBeanPropertyFilter.serializeAllExcept("circulardependency"));

07-25 22:40