2

我有这样的java类:

@RooJavaBean
@RooToString
@RooJpaActiveRecord
@RooJson

public class class1 {

    /**
     */
    @ManyToOne
    private type1 value1;

    /**
     */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "xxxxxx")
    private Set<type2> value2 = new HashSet<type2>();
}

toJson()因此,当我尝试使用(由 Roo 自动生成)查看此类的值时,只是value1被序列化了,没有我的Set<type2>

如果我也想序列化 value2,我必须输入:

instanceClass1.toJson(new String[]{"value2"});

如何为默认方法toJson()序列化Set<type2>呢?

谢谢

我找到了一种解决方案

 public String StringSims.toJson() {
    return new JSONSerializer().include(new String[]{"value2"}).exclude("*.class").serialize(this);
 }

我不确定这不是最好的解决方案:) 我在等你的建议

4

1 回答 1

1

您的“解决方案”是真正的解决方案,您可以过滤 JSONSerializer 应该返回的字段(方法 include() 和 exclude()) - 默认行为是不返回级联关系。在您的情况下,对每个“value2”使用 include:

public String StringSims.toJson() {
    return new JSONSerializer().
            include("*.value2").
            exclude("*.class").
            exclude("*.version").
            serialize(this);
}
于 2014-01-23T19:36:58.330 回答