Class StringIndenter

java.lang.Object
org.codehaus.jettison.util.StringIndenter

public class StringIndenter extends Object
indent json, assumes the input is not yet indented.  here is an example:
{
"FastResponseJs":{
  "ajaxElements":{
    "AjaxMapEntry":[
      {
        "theKey":{
          "@class":"string",
          "$":"ajax1a"
        },
        "theValue":{
          "@class":"AjaxEvent",
          "ajaxSendFormNames":{
            "string":"ajax1"
          },
          "ajaxEventType":"NORMAL",
          "eventName":"onblur",
          "ajaxId":"PRLZY5QZ",
          "screenElementId":"ajax1a",
          "asynchronous":true,
          "disableValidation":true
        }
        
      },
      {
        "theKey":{
       ...
       
       
  Usage: String formatted = new StringIndenter(jsonString).result();
  • Field Details

    • json

      private String json
      chars to process
    • startTagIndex

      private int startTagIndex
      current start tag
    • endTagIndex

      private int endTagIndex
      current end tag
    • currentNumberOfIndents

      private int currentNumberOfIndents
      current number of indents (times to is the indent
    • result

      private StringBuilder result
      result
  • Constructor Details

    • StringIndenter

      public StringIndenter(String theJson)
      Parameters:
      theJson - is the json to format indenter
  • Method Details

    • result

      public String result()
      get the result
      Returns:
      the result
    • indent

      private void indent()
      indent the string
    • onNewline

      private boolean onNewline()
      see if current pos is on newline
      Returns:
      true if on new line
    • instantIndent

      private static boolean instantIndent(String json, int index)
      see if instant indent
      Parameters:
      json -
      index -
      Returns:
      if it is an instant indent
    • instantNewline

      private static boolean instantNewline(String json, int index)
      see if instant indent
      Parameters:
      json -
      index -
      Returns:
      if it is an instant indent
    • instantUnindent

      private static boolean instantUnindent(String json, int index)
      see if instant unindent
      Parameters:
      json -
      index -
      Returns:
      if it is an instant unindent
    • instantUnindentTwoChars

      private static boolean instantUnindentTwoChars(String json, int index)
      see if instant indent
      Parameters:
      json -
      index -
      Returns:
      if it is an instant indent
    • printNewlineIndent

      private void printNewlineIndent(int start, int end)
      put a newline and indent
      Parameters:
      start -
      end -
    • newlineIndent

      private void newlineIndent()
      put a newline and indent
    • repeat

      private static String repeat(String theString, int times)
      repeat a string a certain number of times.
      Parameters:
      theString -
      times -
      Returns:
      the string
    • unindent

      private void unindent()
      unindent a previous indent if it is there
    • findStartTagIndex

      private int findStartTagIndex()
      after the last end tag, find the next start tag
      Returns:
      the next start tag
    • findEndTagIndex

      private int findEndTagIndex()
      after the last start tag, find the next end start tag
      Returns:
      the next start tag
    • findNextStartTagIndex

      private static int findNextStartTagIndex(String json, int startFrom)
      find the start tag from json and a start from index either look for a quote, {, [ or scalar. generally not whitespace
      Parameters:
      json -
      startFrom -
      Returns:
      the start tag index of -1 if not found another
    • findNextEndTagIndex

      private static int findNextEndTagIndex(String json, int startFrom)
      find the end tag from json and a start from index
      Parameters:
      json -
      startFrom - is the char after the start of tag
      Returns:
      the start tag index of -1 if not found another