On Tue, 2020-05-12 at 16:09 +0200, JCR 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?
FWIW, the rendering in the DefaultGetServlet is not accessible to the outside world [1]. I could imagine that we could open on the default renderers in ways that do not break encapsulation. Feel free to raise an issue if that's interesting to you. Obviously, a PR would be even better :-) Thanks, Robert > > 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 > > > > > > > > > > [1]: https://github.com/apache/sling-org-apache-sling-servlets-get/blob/master/src/main/java/org/apache/sling/servlets/get/impl/helpers/JsonRenderer.java