Package org.codehaus.jettison.util
Class StringIndenter
- java.lang.Object
-
- org.codehaus.jettison.util.StringIndenter
-
public class StringIndenter extends java.lang.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 Summary
Fields Modifier and Type Field Description private int
currentNumberOfIndents
current number of indents (times to is the indentprivate int
endTagIndex
current end tagprivate java.lang.String
json
chars to processprivate java.lang.StringBuilder
result
resultprivate int
startTagIndex
current start tag
-
Constructor Summary
Constructors Constructor Description StringIndenter(java.lang.String theJson)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private int
findEndTagIndex()
after the last start tag, find the next end start tagprivate static int
findNextEndTagIndex(java.lang.String json, int startFrom)
find the end tag from json and a start from indexprivate static int
findNextStartTagIndex(java.lang.String json, int startFrom)
find the start tag from json and a start from index either look for a quote, {, [ or scalar.private int
findStartTagIndex()
after the last end tag, find the next start tagprivate void
indent()
indent the stringprivate static boolean
instantIndent(java.lang.String json, int index)
see if instant indentprivate static boolean
instantNewline(java.lang.String json, int index)
see if instant indentprivate static boolean
instantUnindent(java.lang.String json, int index)
see if instant unindentprivate static boolean
instantUnindentTwoChars(java.lang.String json, int index)
see if instant indentprivate void
newlineIndent()
put a newline and indentprivate boolean
onNewline()
see if current pos is on newlineprivate void
printNewlineIndent(int start, int end)
put a newline and indentprivate static java.lang.String
repeat(java.lang.String theString, int times)
repeat a string a certain number of times.java.lang.String
result()
get the resultprivate void
unindent()
unindent a previous indent if it is there
-
-
-
Field Detail
-
json
private java.lang.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 java.lang.StringBuilder result
result
-
-
Method Detail
-
result
public java.lang.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(java.lang.String json, int index)
see if instant indent- Parameters:
json
-index
-- Returns:
- if it is an instant indent
-
instantNewline
private static boolean instantNewline(java.lang.String json, int index)
see if instant indent- Parameters:
json
-index
-- Returns:
- if it is an instant indent
-
instantUnindent
private static boolean instantUnindent(java.lang.String json, int index)
see if instant unindent- Parameters:
json
-index
-- Returns:
- if it is an instant unindent
-
instantUnindentTwoChars
private static boolean instantUnindentTwoChars(java.lang.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 java.lang.String repeat(java.lang.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(java.lang.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(java.lang.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
-
-