本帖最后由 ArayChou 于 2015-01-27 18:01:20 编辑

解决方案 »

  1.   

    可以自己组装一个Object对象,要用哪些值保存在里面,让后传Object就可以了
      

  2.   

    有没有同学做个通过配置(比如Annotation,xml)定义那些properties需要忽略, 叫较通用的实现?或者有没有现成的?
      

  3.   

    json的转换工具都有提供这种API,例如json-lib有JsonConfig。不要想用配置,你都说了不同场景这已经是不通用了,肯定要在程序里自己根据需要用API设定
      

  4.   


    场景可以穷举嘛,实际上也没有几个不同的场景。类似这样
    大概来个例子:
    [code=java]
    public class User {
    @JsonPropertyGroup({"FULL_USER","SIMPLE_USER"})
    Integer id;
    @JsonPropertyGroup({"FULL_USER","SIMPLE_USER"})
    String name;
    @JsonPropertyGroup({"FULL_USER"})
    Boolean gender;
    @JsonPropertyGroup({"FULL_USER"})
    @JsonUsingGroup("SIMPLE_USER")
    Organiztion org;
    }
    public class Order {
    @JsonPropertyGroup("FULL")
    @JsonUsingGroup("SIMPLE_USER")
    User user;
    @JsonPropertyGroup("FULL")
    Map<@JsonUsingGroup("SIMPLE_PRODUCT")Product,Integer> product;
    }/code]User定义了2种序列化方案:SIMPLE_USER,FULL_USER
    Order中鼎了一种序列化方案:FULL, 其中的复杂属性user采用SIMPLE_USER方案。
    不知道有没有大神已经实现了类似的机制,或者有同学像个这方面的问题,请分享一下
      

  5.   

    public class User {
    @JsonPropertyGroup({"FULL_USER","SIMPLE_USER"})
    Integer id;
    @JsonPropertyGroup({"FULL_USER","SIMPLE_USER"})
    String name;
    @JsonPropertyGroup({"FULL_USER"})
    Boolean gender;
    @JsonPropertyGroup({"FULL_USER"})
    @JsonUsingGroup("SIMPLE_USER")
    Organiztion org;
    }
    public class Order {
    @JsonPropertyGroup("FULL")
    @JsonUsingGroup("SIMPLE_USER")
    User user;
    @JsonPropertyGroup("FULL")
    Map<@JsonUsingGroup("SIMPLE_PRODUCT")Product,Integer> product;
    }
    汗,编辑自己的帖子居然没有权限
      

  6.   

    经过几天的研究,发现@JsonView @JsonFilter 都是为了解决这个问题而生的。其中,spring 4.1 Restfull模式加入了对@JsonView的支持。但是这2个都不能完全满足我的要求。我决定使用@JsonFilter,然后加入自定义的机制,在每一个bean上都用Annotation定义一些Filter。