[ https://issues.apache.org/jira/browse/SLING-9455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Munteanu updated SLING-9455: ----------------------------------- Description: Sling 8 came with an org.apache.sling.commons.json bundle/package. The .jcr sub-package contained two classes: * JsonItemWriter * JsonJcrNode (javadoc [here|https://sling.apache.org/apidocs/sling8/org/apache/sling/commons/json/jcr/package-summary.html) These two classes allowed for serializing a sling resource to well formated JSON and a JCR node to an org.apache.sling.commons.json.JSONObject, respectively. For legal reasons, this package was discontinued and is not present anymore in later versions, including the current Sling 11 version. Consequently, Sling 11 lacks of a simple yet application-controllable way to serialize a Resource directly to a JSON string. However, many API calls, used in particular by client-side Javascript frameworks (e.g. for Single Page Apps), rely heavily on JSON. Hence, it would be desirable to have the Sling 8 JSON package (or similar) back in Sling. The following functionality should be present to have a flexible JSON generator available within Sling: * direct conversion of Nodes/Resources to a String containing JSON * application control of node recursion levels (child nodes as JSON objects) * should allow to set a negative list of properties (those not to render in the output) * proper rendering of all JCR property types to JSON including ** date format definition (default = ISO8601) ** multi-values support (as JSON arrays) ** proper escaping of special chars in Strings * adding additional string/value pairs by the application (i.e. not originating from the dumped Resource) See also [thread on the sling-users mailing list starting 12 May 2020/"Resource to json serializing"|https://lists.apache.org/thread.html/r9756cb97eb77d2d5c0779f4003ab166b54ee0fc424993b3dedf4a6c2%40%3Cusers.sling.apache.org%3E] was: Sling 8 came with an org.apache.sling.commons.json bundle/package. The .jcr sub-package contained two classes: * JsonItemWriter * JsonJcrNode (javadoc [here|https://sling.apache.org/apidocs/sling8/org/apache/sling/commons/json/jcr/package-summary.html) These two classes allowed for serializing a sling resource to well formated JSON and a JCR node to an org.apache.sling.commons.json.JSONObject, respectively. For legal reasons, this package was discontinued and is not present anymore in later versions, including the current Sling 11 version. Consequently, Sling 11 lacks of a simple yet application-controllable way to serialize a Resource directly to a JSON string. However, many API calls, used in particular by client-side Javascript frameworks (e.g. for Single Page Apps), rely heavily on JSON. Hence, it would be desirable to have the Sling 8 JSON package (or similar) back in Sling. The following functionality should be present to have a flexible JSON generator available within Sling: * direct conversion of Nodes/Resources to a String containing JSON * application control of node recursion levels (child nodes as JSON objects) * should allow to set a negative list of properties (those not to render in the output) * proper rendering of all JCR property types to JSON including ** date format definition (default = ISO8601) ** multi-values support (as JSON arrays) ** proper escaping of special chars in Strings * adding additional string/value pairs by the application (i.e. not originating from the dumped Resource) See also thread on the sling-users mailing list starting 12 May 2020/"Resource to json serializing" > JsonItemWriter > -------------- > > Key: SLING-9455 > URL: https://issues.apache.org/jira/browse/SLING-9455 > Project: Sling > Issue Type: New Feature > Components: Commons > Affects Versions: Commons JSON 2.0.18 > Environment: Sling Starter > Reporter: Juerg Meier > Priority: Major > > Sling 8 came with an org.apache.sling.commons.json bundle/package. The .jcr > sub-package contained two classes: > * JsonItemWriter > * JsonJcrNode > (javadoc > [here|https://sling.apache.org/apidocs/sling8/org/apache/sling/commons/json/jcr/package-summary.html) > These two classes allowed for serializing a sling resource to well formated > JSON and a JCR node to an org.apache.sling.commons.json.JSONObject, > respectively. > For legal reasons, this package was discontinued and is not present anymore > in later versions, including the current Sling 11 version. > Consequently, Sling 11 lacks of a simple yet application-controllable way to > serialize a Resource directly to a JSON string. However, many API calls, used > in particular by client-side Javascript frameworks (e.g. for Single Page > Apps), rely heavily on JSON. > Hence, it would be desirable to have the Sling 8 JSON package (or similar) > back in Sling. The following functionality should be present to have a > flexible JSON generator available within Sling: > * direct conversion of Nodes/Resources to a String containing JSON > * application control of node recursion levels (child nodes as JSON objects) > * should allow to set a negative list of properties (those not to render in > the output) > * proper rendering of all JCR property types to JSON including > ** date format definition (default = ISO8601) > ** multi-values support (as JSON arrays) > ** proper escaping of special chars in Strings > * adding additional string/value pairs by the application (i.e. not > originating from the dumped Resource) > See also [thread on the sling-users mailing list starting 12 May > 2020/"Resource to json > serializing"|https://lists.apache.org/thread.html/r9756cb97eb77d2d5c0779f4003ab166b54ee0fc424993b3dedf4a6c2%40%3Cusers.sling.apache.org%3E] > -- This message was sent by Atlassian Jira (v8.3.4#803005)