Class JsonRenderer

  • All Implemented Interfaces:
    Renderer

    public class JsonRenderer
    extends Object
    implements Renderer
    The JsonRendererServlet renders the current resource in JSON on behalf of the DefaultGetServlet.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String HARRAY
      Selector that causes hierarchy to be rendered as arrays instead of child objects - useful to preserve the order of those child objects
      static int INDENT_SPACES
      How much to indent in tidy mode
      static String INFINITY
      Recursion level selector that means "all levels"
      static String TIDY
      Selector that means "pretty-print the output
    • Constructor Summary

      Constructors 
      Constructor Description
      JsonRenderer​(long maximumResults, boolean ecmaSupport)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected int getMaxRecursionLevel​(org.apache.sling.api.SlingHttpServletRequest req)
      Get recursion level from selectors.
      protected boolean hasSelector​(org.apache.sling.api.SlingHttpServletRequest req, String selectorToCheck)
      Checks if the provided request contains a certain selector.
      protected boolean isTidy​(org.apache.sling.api.SlingHttpServletRequest req)
      True if our request wants the "tidy" pretty-printed format
      void render​(org.apache.sling.api.SlingHttpServletRequest req, org.apache.sling.api.SlingHttpServletResponse resp)  
    • Field Detail

      • HARRAY

        public static final String HARRAY
        Selector that causes hierarchy to be rendered as arrays instead of child objects - useful to preserve the order of those child objects
        See Also:
        Constant Field Values
      • INDENT_SPACES

        public static final int INDENT_SPACES
        How much to indent in tidy mode
        See Also:
        Constant Field Values
    • Constructor Detail

      • JsonRenderer

        public JsonRenderer​(long maximumResults,
                            boolean ecmaSupport)
    • Method Detail

      • render

        public void render​(org.apache.sling.api.SlingHttpServletRequest req,
                           org.apache.sling.api.SlingHttpServletResponse resp)
                    throws IOException
        Specified by:
        render in interface Renderer
        Throws:
        IOException
      • getMaxRecursionLevel

        protected int getMaxRecursionLevel​(org.apache.sling.api.SlingHttpServletRequest req)
                                    throws IllegalArgumentException
        Get recursion level from selectors. as per SLING-167: the last selector, if present, gives the recursion level.
        Parameters:
        req - the request
        Returns:
        the recursion level
        Throws:
        IllegalArgumentException - if the detected selector is not a number
      • hasSelector

        protected boolean hasSelector​(org.apache.sling.api.SlingHttpServletRequest req,
                                      String selectorToCheck)
        Checks if the provided request contains a certain selector.
        Parameters:
        req - the request
        selectorToCheck - the selector
        Returns:
        true if the selector is present, false otherwise
      • isTidy

        protected boolean isTidy​(org.apache.sling.api.SlingHttpServletRequest req)
        True if our request wants the "tidy" pretty-printed format
        Parameters:
        req - the request
        Returns:
        true if the request contains the TIDY selector, false otherwise