Hi John
Yes, that's a problem.
Even in the Sling "open source space", many examples/code excerpts include references to proprietary Adobe code, not
available to "pure" Sling projects...
-Juerg
On 12.05.2020 17:50, John Kramer wrote:
Hi Juerg,
I am using Apache sling as part of AEM. Adobe packages its own very similar
class com.day.cq.commons.TidyJsonItemWriter. Of course that doesn't help if you
aren't using AEM.
John Kramer
Manager, AEM Engineer
E-Commerce Web Team
e: john.kra...@panerabread.com <mailto:john.kra...@panera.com>
m: 314-435-2370
On 5/12/20, 09:10, "JCR" <j...@proxymit.net> wrote:
Thanks Daniel, John,
As the app makes high usage of dynamic JCR Node features (based on
nt:unstructured, mixins, etc), a relatively static sling model class
seems a bit unpractical, though a typesafe contract would be desirable,
of course.
On the other hand, the JsonItemWriter would almost be ideal but is not
present in Sling 11 anymore. Actually, the entire commons.json package
disappeared. Seemingly, this package has been replaced by Apache Johnzon
but I cannot find anything equivalent to JsonItemWriter.
Anybody aware of its substitute?
Thanks,
Juerg
On 11.05.20 16:39, John Kramer wrote:
> You could also use a JsonItemWriter and write your own servlet if you
want to do it that way:
>
>
https://sling.apache.org/apidocs/sling8/org/apache/sling/commons/json/jcr/JsonItemWriter.html
>
>
> John Kramer
> Manager, AEM Engineer
> E-Commerce Web Team
> e: john.kra...@panerabread.com <mailto:john.kra...@panera.com>
> m: 314-435-2370
>
> On 5/11/20, 08:54, "Daniel Klco" <dk...@apache.org> wrote:
>
> Warning: This email originated from outside of Panera. Beware of
clicking links and attachments.
>
>
> 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
> >
> >
>
>