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