Class JSONFlattenerMaker
- java.lang.Object
-
- org.apache.druid.java.util.common.parsers.JSONFlattenerMaker
-
- All Implemented Interfaces:
ObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
public class JSONFlattenerMaker extends Object implements ObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
-
Constructor Summary
Constructors Constructor Description JSONFlattenerMaker(boolean keepNullValues, boolean discoverNestedFields)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Object
convertJsonNode(com.fasterxml.jackson.databind.JsonNode val, CharsetEncoder enc)
Iterable<String>
discoverRootFields(com.fasterxml.jackson.databind.JsonNode obj)
List all "root" fields.Object
finalizeConversionForMap(Object o)
Handle any special conversions for object when translating an input type into aMap
forObjectFlatteners.FlattenerMaker.toMap(T)
com.jayway.jsonpath.spi.json.JsonProvider
getJsonProvider()
Object
getRootField(com.fasterxml.jackson.databind.JsonNode obj, String key)
Get a top level field from a "json" objectFunction<com.fasterxml.jackson.databind.JsonNode,Object>
makeJsonPathExtractor(String expr)
Create a "field" extractor forJsonPath
expressionsFunction<com.fasterxml.jackson.databind.JsonNode,Object>
makeJsonQueryExtractor(String expr)
Create a "field" extractor for 'jq' expressionsFunction<com.fasterxml.jackson.databind.JsonNode,Object>
makeJsonTreeExtractor(List<String> nodes)
Create a "field" extractor for nested json expressions-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.java.util.common.parsers.ObjectFlatteners.FlattenerMaker
toMap, toPlainJavaType
-
-
-
-
Method Detail
-
discoverRootFields
public Iterable<String> discoverRootFields(com.fasterxml.jackson.databind.JsonNode obj)
Description copied from interface:ObjectFlatteners.FlattenerMaker
List all "root" fields. IfDimensionsSpec.useSchemaDiscovery
is false, this method should filter fields to include only fields that contain primitive and lists of primitive values- Specified by:
discoverRootFields
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
getRootField
public Object getRootField(com.fasterxml.jackson.databind.JsonNode obj, String key)
Description copied from interface:ObjectFlatteners.FlattenerMaker
Get a top level field from a "json" object- Specified by:
getRootField
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
makeJsonPathExtractor
public Function<com.fasterxml.jackson.databind.JsonNode,Object> makeJsonPathExtractor(String expr)
Description copied from interface:ObjectFlatteners.FlattenerMaker
Create a "field" extractor forJsonPath
expressions- Specified by:
makeJsonPathExtractor
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
makeJsonQueryExtractor
public Function<com.fasterxml.jackson.databind.JsonNode,Object> makeJsonQueryExtractor(String expr)
Description copied from interface:ObjectFlatteners.FlattenerMaker
Create a "field" extractor for 'jq' expressions- Specified by:
makeJsonQueryExtractor
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
makeJsonTreeExtractor
public Function<com.fasterxml.jackson.databind.JsonNode,Object> makeJsonTreeExtractor(List<String> nodes)
Description copied from interface:ObjectFlatteners.FlattenerMaker
Create a "field" extractor for nested json expressions- Specified by:
makeJsonTreeExtractor
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
getJsonProvider
public com.jayway.jsonpath.spi.json.JsonProvider getJsonProvider()
- Specified by:
getJsonProvider
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
finalizeConversionForMap
public Object finalizeConversionForMap(Object o)
Description copied from interface:ObjectFlatteners.FlattenerMaker
Handle any special conversions for object when translating an input type into aMap
forObjectFlatteners.FlattenerMaker.toMap(T)
- Specified by:
finalizeConversionForMap
in interfaceObjectFlatteners.FlattenerMaker<com.fasterxml.jackson.databind.JsonNode>
-
convertJsonNode
@Nullable public static Object convertJsonNode(com.fasterxml.jackson.databind.JsonNode val, CharsetEncoder enc)
-
-