Genson:使用RuntimePropertyFilter处理子属性

时间:2016-09-16 13:30:27

标签: java json genson

对于我的Genson配置,我使用了UrlQueryParamFilter。它有效,但不如我预期的那样 我的实体:

public class Root {
    private String firstRootProp;
    private String secondRootProp;
    private List<Child> childs;

    //getters & setters
}

public class Child {
    private String firstChildProp;
    private String secondChildProp;

    //getters & setters
}

&#34; rootEntity&#34;端点绑定在我的休息服务中获得Root个静止。 当我得到http://<host>/myservice/rootEntity?filter=childs时,我被怀疑会让所有孩子都拥有所有孩子的财产。但实际上我只有孩子的结构:

{
    "childs": [
        {},
        {}
    ]
}

我想得到的是什么:

{
    "childs": [
        {
            "firstChildProp": "Some value for first property",
            "secondChildProp": "And some value for second property"
        },
        {
            "firstChildProp": "Some value for first property",
            "secondChildProp": "And some value for second property"
        }
    ]
}

我该如何解决?
THX。

1 个答案:

答案 0 :(得分:1)

UrlQueryParamFilter希望您提供要包含的所有属性的名称(如果配置为排除属性,则排除)。所以简而言之,http://<host>/myservice/rootEntity?filter=childs,firstChildProp,secondChildProp应该有用。

我想提供一种配置包含所有子属性的方法是有意义的,我打开了这个问题https://github.com/owlike/genson/issues/105