Napisałem bibliotekę o nazwie Squiggly Filter, która wybiera pola na podstawie podzbioru składni interfejsu Facebook Graph API. Na przykład, aby wybrać kod zip pola adresu obiektu użytkownika, należy użyć ciągu zapytania ?fields=address{zipCode}
. Jedną z zalet Squiggly Filter jest to, że dopóki masz dostęp do ObjectMapper, który renderuje json, nie musisz modyfikować kodu żadnej z metod kontrolera.
Zakładając, że używasz API serwletów, można wykonać następujące czynności:
1) Zarejestruj filtr
<filter>
<filter-name>squigglyFilter</filter-name>
<filter-class>com.github.bohnman.squiggly.web.SquigglyRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>squigglyFilter</filter-name>
<url-pattern>/**</url-pattern>
</filter-mapping>
2) zainicjować ObjectMapper
Squiggly.init(objectMapper, new RequestSquigglyContextProvider());
3) Ty może teraz filtrować twój json
curl https://yourhost/path/to/endpoint?fields=field1,field2{nested1,nested2}
Więcej informacji na temat filtra Squiggly można znaleźć pod adresem github.
Czy próbujesz wykluczyć właściwości w czasie wykonywania? Na przykład masz mapę i chcesz wykluczyć niektóre właściwości wewnątrz niej? – eugen
tak, ale powinno to być wyjątek z notacją kropkową, taki jak 'order.id' ' order.content.items' – Roman