2016-09-16 70 views
1

对于我的Genson配置,我使用了UrlQueryParamFilter。它有效,但不是我所期望的。
我的实体:Genson:在使用RuntimePropertyFilter时处理孩子的财产

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 
} 

“rootEntity” 端点绑定到得到一些Root instatnce在我休息的服务。 当我得到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

UrlQueryParamFilter期望您提供要包含的所有属性的名称(或者如果配置为排除属性,则排除)。所以总之要做http://<host>/myservice/rootEntity?filter=childs,firstChildProp,secondChildProp应该可以工作。

我想这可能是有道理的提供一种方法来配置包含所有子属性,我打开此问题https://github.com/owlike/genson/issues/105