Class JsonFlattener
java.lang.Object
com.github.wnameless.json.flattener.JsonFlattener
JsonFlattener flattens any JSON nested objects or arrays into a flattened JSON string or
a Map<Stirng, Object>. The String key will represents the corresponding position of
value in the original nested objects or arrays and the Object value are either String, Boolean,
Long, Double or null. For example:
A nested JSON
{ "a" : { "b" : 1, "c": null, "d": [false, true] }, "e": "f", "g":2.3 }
can be turned into a flattened JSON
{ "a.b": 1, "a.c": null, "a.d[0]": false, "a.d[1]": true, "e": "f", "g":2.3 }
or into a Map
{
a.b=1,
a.c=null,
a.d[0]=false,
a.d[1]=true,
e=f,
g=2.3
}
- Author:
- Wei-Ming Wu
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringROOTis the default key of the Map returned byflattenAsMap(com.github.wnameless.json.base.JsonValueBase<?>). -
Constructor Summary
ConstructorsConstructorDescriptionJsonFlattener(com.github.wnameless.json.base.JsonCore<?> jsonCore, com.github.wnameless.json.base.JsonValueBase<?> json) Creates a JSON flattener by givenJsonCoreandJsonValueBase.JsonFlattener(com.github.wnameless.json.base.JsonCore<?> jsonCore, Reader jsonReader) Creates a JSON flattener by givenJsonCoreand JSON string reader.JsonFlattener(com.github.wnameless.json.base.JsonCore<?> jsonCore, String json) Creates a JSON flattener by givenJsonCoreand JSON string.JsonFlattener(com.github.wnameless.json.base.JsonValueBase<?> json) Creates a JSON flattener by givenJsonValueBase.JsonFlattener(Reader jsonReader) Creates a JSON flattener by given JSON string reader.JsonFlattener(String json) Creates a JSON flattener by given JSON string. -
Method Summary
Modifier and TypeMethodDescriptionbooleanflatten()Returns a flattened JSON string.static Stringflatten(com.github.wnameless.json.base.JsonValueBase<?> jsonVal) Returns a flattened JSON string.static StringReturns a flattened JSON string.Returns a flattened JSON as Map.flattenAsMap(com.github.wnameless.json.base.JsonValueBase<?> jsonVal) Returns a flattened JSON as Map.flattenAsMap(String json) Returns a flattened JSON as Map.inthashCode()After this option is enable, all reserved characters used in keys will stop to be checked and escaped.toString()withFlattenMode(FlattenMode flattenMode) A fluent setter to setup a mode of theJsonFlattener.withKeyTransformer(KeyTransformer keyTrans) A fluent setter to setup aKeyTransformerof theJsonFlattener.withLeftAndRightBrackets(char leftBracket, char rightBracket) A fluent setter to setup the left and right brackets within a key in the flattened JSON.withPrintMode(PrintMode printMode) A fluent setter to setup a print mode of theJsonFlattener.withSeparator(char separator) A fluent setter to setup the separator within a key in the flattened JSON.A fluent setter to setup the JSON string escape policy.
-
Field Details
-
ROOT
ROOTis the default key of the Map returned byflattenAsMap(com.github.wnameless.json.base.JsonValueBase<?>). WhenJsonFlattenerprocesses a JSON string which is not a JSON object or array, the final outcome may not suit in a Java Map. At that moment,JsonFlattenerwill put the result in the Map withROOTas its key.- See Also:
-
-
Constructor Details
-
JsonFlattener
public JsonFlattener(com.github.wnameless.json.base.JsonValueBase<?> json) Creates a JSON flattener by givenJsonValueBase.- Parameters:
json- aJsonValueBase
-
JsonFlattener
public JsonFlattener(com.github.wnameless.json.base.JsonCore<?> jsonCore, com.github.wnameless.json.base.JsonValueBase<?> json) Creates a JSON flattener by givenJsonCoreandJsonValueBase.- Parameters:
jsonCore- aJsonCorejson- a JSON string
-
JsonFlattener
Creates a JSON flattener by given JSON string.- Parameters:
json- a JSON string
-
JsonFlattener
Creates a JSON flattener by givenJsonCoreand JSON string.- Parameters:
jsonCore- aJsonCorejson- a JSON string
-
JsonFlattener
Creates a JSON flattener by given JSON string reader.- Parameters:
jsonReader- a JSON reader- Throws:
IOException- if the jsonReader cannot be read
-
JsonFlattener
public JsonFlattener(com.github.wnameless.json.base.JsonCore<?> jsonCore, Reader jsonReader) throws IOException Creates a JSON flattener by givenJsonCoreand JSON string reader.- Parameters:
jsonCore- aJsonCorejsonReader- a JSON string- Throws:
IOException- if the jsonReader cannot be read
-
-
Method Details
-
flatten
Returns a flattened JSON string.- Parameters:
jsonVal- a JSON data which wraps byJsonValueBase- Returns:
- a flattened JSON string
-
flatten
Returns a flattened JSON string.- Parameters:
json- the JSON string- Returns:
- a flattened JSON string
-
flattenAsMap
public static Map<String,Object> flattenAsMap(com.github.wnameless.json.base.JsonValueBase<?> jsonVal) Returns a flattened JSON as Map.- Parameters:
jsonVal- a JSON data which wraps byJsonValueBase- Returns:
- a flattened JSON as Map
-
flattenAsMap
Returns a flattened JSON as Map.- Parameters:
json- the JSON string- Returns:
- a flattened JSON as Map
-
withFlattenMode
A fluent setter to setup a mode of theJsonFlattener.- Parameters:
flattenMode- aFlattenMode- Returns:
- this
JsonFlattener
-
withStringEscapePolicy
A fluent setter to setup the JSON string escape policy.- Parameters:
policy- anyCharSequenceTranslatorFactoryor aStringEscapePolicy- Returns:
- this
JsonFlattener
-
withSeparator
A fluent setter to setup the separator within a key in the flattened JSON. The default separator is a dot(.).- Parameters:
separator- any character- Returns:
- this
JsonFlattener
-
withLeftAndRightBrackets
A fluent setter to setup the left and right brackets within a key in the flattened JSON. The default left and right brackets are left square bracket([) and right square bracket(]).- Parameters:
leftBracket- any characterrightBracket- any character- Returns:
- this
JsonFlattener
-
withPrintMode
A fluent setter to setup a print mode of theJsonFlattener. The default print mode is minimal.- Parameters:
printMode- aPrintMode- Returns:
- this
JsonFlattener
-
withKeyTransformer
A fluent setter to setup aKeyTransformerof theJsonFlattener.- Parameters:
keyTrans- aKeyTransformer- Returns:
- this
JsonFlattener
-
ignoreReservedCharacters
After this option is enable, all reserved characters used in keys will stop to be checked and escaped.
Example:
Input JSON: {"matrix":{"agent.smith":"1999"}}
Flatten with option disable: {"matrix[\"agent.smith\"]":"1999"}
Flatten with option enable: {"matrix.agent.smith":"1999"}
JsonUnflattenermay cause unpredictable results with the JSON produced by aJsonFlattenerwith this option enable.- Returns:
- this
JsonFlattener
-
flatten
Returns a flattened JSON string.- Returns:
- a flattened JSON string
-
flattenAsMap
Returns a flattened JSON as Map.- Returns:
- a flattened JSON as Map
-
hashCode
public int hashCode() -
equals
-
toString
-