hey, sorry, super late to the party here but this can be solved with sling models:

sling models have a @JsonAnyGetter method - for a reference, see the implementation of this in the peregrine-cms land:

https://github.com/headwirecom/peregrine-cms/blob/develop/platform/base/core/src/main/java/com/peregrine/nodetypes/models/NtUnstructuredModel.java
https://github.com/headwirecom/peregrine-cms/blob/develop/platform/base/core/src/main/java/com/peregrine/nodetypes/models/Container.java

Ruben

On 5/11/2020 6:54 AM, Daniel Klco wrote:
Sounds like a use case for Sling Models Exporter:

https://sling.apache.org/documentation/bundles/models.html#exporter-framework-since-130-1

https://blogs.perficient.com/2018/07/26/no-servlets-required-exporting-data-with-sling-models/

The only caveat is that it's designed for named parameters, if you really
need it to be completely configurable at runtime, I'd suggest creating a
servlet attached to a resource type that filters the current resources
value map and uses Jackson to convert it to a JSON.

On Mon, May 11, 2020 at 4:31 AM JCR <j...@proxymit.net> wrote:

Before I write anything on my own...

Hello

There is this convenient .json extension which produces a JSON
serialization of any given resource in Sling.

What would be a "best practice" if I only wanted a subset of all
properties to be serialized on the json stream? That is, I would like to
provide a "positive" list (lists all props to be exported) or a
"negative" one (props to be excluded).

Example: I have props a, b and c on a given node/resource and only a and
c should appear on the output.

Thanks for any pattern hint
Juerg


Reply via email to