Package org.codehaus.jettison.util
Class StringIndenter
java.lang.Object
org.codehaus.jettison.util.StringIndenter
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 Summary
FieldsModifier and TypeFieldDescriptionprivate int
current number of indents (times to is the indentprivate int
current end tagprivate String
chars to processprivate StringBuilder
resultprivate int
current start tag -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate int
after the last start tag, find the next end start tagprivate static int
findNextEndTagIndex
(String json, int startFrom) find the end tag from json and a start from indexprivate 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.private int
after the last end tag, find the next start tagprivate void
indent()
indent the stringprivate static boolean
instantIndent
(String json, int index) see if instant indentprivate static boolean
instantNewline
(String json, int index) see if instant indentprivate static boolean
instantUnindent
(String json, int index) see if instant unindentprivate static boolean
instantUnindentTwoChars
(String json, int index) see if instant indentprivate void
put a newline and indentprivate boolean
see if current pos is on newlineprivate void
printNewlineIndent
(int start, int end) put a newline and indentprivate static String
repeat a string a certain number of times.result()
get the resultprivate void
unindent()
unindent a previous indent if it is there
-
Field Details
-
json
chars to process -
startTagIndex
private int startTagIndexcurrent start tag -
endTagIndex
private int endTagIndexcurrent end tag -
currentNumberOfIndents
private int currentNumberOfIndentscurrent number of indents (times to is the indent -
result
result
-
-
Constructor Details
-
StringIndenter
- Parameters:
theJson
- is the json to format indenter
-
-
Method Details
-
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
see if instant indent- Parameters:
json
-index
-- Returns:
- if it is an instant indent
-
instantNewline
see if instant indent- Parameters:
json
-index
-- Returns:
- if it is an instant indent
-
instantUnindent
see if instant unindent- Parameters:
json
-index
-- Returns:
- if it is an instant unindent
-
instantUnindentTwoChars
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
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
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
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
-