Class JsonFlattener
- java.lang.Object
-
- com.github.wnameless.json.flattener.JsonFlattener
-
public final class JsonFlattener extends Object
JsonFlattenerflattens 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
Fields Modifier and Type Field Description static StringROOTROOTis the default key of the Map returned byflattenAsMap(com.github.wnameless.json.base.JsonValueBase<?>).
-
Constructor Summary
Constructors Constructor Description JsonFlattener(com.github.wnameless.json.base.JsonValueBase<?> json)Creates a JSON flattener.JsonFlattener(Reader jsonReader)Creates a JSON flattener.JsonFlattener(String json)Creates a JSON flattener.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)Stringflatten()Returns a flattened JSON string.static Stringflatten(com.github.wnameless.json.base.JsonValueBase<?> jsonVal)Returns a flattened JSON string.static Stringflatten(String json)Returns a flattened JSON string.Map<String,Object>flattenAsMap()Returns a flattened JSON as Map.static Map<String,Object>flattenAsMap(com.github.wnameless.json.base.JsonValueBase<?> jsonVal)Returns a flattened JSON as Map.static Map<String,Object>flattenAsMap(String json)Returns a flattened JSON as Map.inthashCode()StringtoString()JsonFlattenerwithFlattenMode(FlattenMode flattenMode)A fluent setter to setup a mode of theJsonFlattener.JsonFlattenerwithKeyTransformer(KeyTransformer keyTrans)A fluent setter to setup aKeyTransformerof theJsonFlattener.JsonFlattenerwithLeftAndRightBrackets(char leftBracket, char rightBracket)A fluent setter to setup the left and right brackets within a key in the flattened JSON.JsonFlattenerwithPrintMode(PrintMode printMode)A fluent setter to setup a print mode of theJsonFlattener.JsonFlattenerwithSeparator(char separator)A fluent setter to setup the separator within a key in the flattened JSON.JsonFlattenerwithStringEscapePolicy(CharSequenceTranslatorFactory policy)A fluent setter to setup the JSON string escape policy.
-
-
-
Field Detail
-
ROOT
public static final String 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:
- Constant Field Values
-
-
Constructor Detail
-
JsonFlattener
public JsonFlattener(com.github.wnameless.json.base.JsonValueBase<?> json)
Creates a JSON flattener.- Parameters:
json- aJsonValueBase
-
JsonFlattener
public JsonFlattener(String json)
Creates a JSON flattener.- Parameters:
json- the JSON string
-
JsonFlattener
public JsonFlattener(Reader jsonReader) throws IOException
Creates a JSON flattener.- Parameters:
jsonReader- the JSON reader- Throws:
IOException- if jsonReader cannot be read
-
-
Method Detail
-
flatten
public static String flatten(com.github.wnameless.json.base.JsonValueBase<?> jsonVal)
Returns a flattened JSON string.- Parameters:
jsonVal- a JSON data which wraps byJsonValueBase- Returns:
- a flattened JSON string
-
flatten
public static String flatten(String json)
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
public static Map<String,Object> flattenAsMap(String json)
Returns a flattened JSON as Map.- Parameters:
json- the JSON string- Returns:
- a flattened JSON as Map
-
withFlattenMode
public JsonFlattener withFlattenMode(FlattenMode flattenMode)
A fluent setter to setup a mode of theJsonFlattener.- Parameters:
flattenMode- aFlattenMode- Returns:
- this
JsonFlattener
-
withStringEscapePolicy
public JsonFlattener withStringEscapePolicy(CharSequenceTranslatorFactory policy)
A fluent setter to setup the JSON string escape policy.- Parameters:
policy- anyCharSequenceTranslatorFactoryor aStringEscapePolicy- Returns:
- this
JsonFlattener
-
withSeparator
public JsonFlattener withSeparator(char separator)
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
public JsonFlattener withLeftAndRightBrackets(char leftBracket, char rightBracket)
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
public JsonFlattener withPrintMode(PrintMode printMode)
A fluent setter to setup a print mode of theJsonFlattener. The default print mode is minimal.- Parameters:
printMode- aPrintMode- Returns:
- this
JsonFlattener
-
withKeyTransformer
public JsonFlattener withKeyTransformer(KeyTransformer keyTrans)
A fluent setter to setup aKeyTransformerof theJsonFlattener.- Parameters:
keyTrans- aKeyTransformer- Returns:
- this
JsonFlattener
-
flatten
public String flatten()
Returns a flattened JSON string.- Returns:
- a flattened JSON string
-
flattenAsMap
public Map<String,Object> flattenAsMap()
Returns a flattened JSON as Map.- Returns:
- a flattened JSON as Map
-
-