Class JSONPathParser
java.lang.Object
org.apache.druid.java.util.common.parsers.JSONPathParser
JSON parser class that uses the JsonPath library to access fields via path expressions.
-
Constructor Summary
ConstructorsConstructorDescriptionJSONPathParser(JSONPathSpec flattenSpec, com.fasterxml.jackson.databind.ObjectMapper mapper, boolean keepNullColumns) Constructor -
Method Summary
Modifier and TypeMethodDescriptionReturns the fieldNames that we expect to see in parsed Maps, if known, or null otherwise.parseToMap(String input) Parse a String into a Map.voidsetFieldNames(Iterable<String> fieldNames) Set the fieldNames that you expect to see in parsed Maps.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.druid.java.util.common.parsers.Parser
startFileFromBeginning
-
Constructor Details
-
JSONPathParser
public JSONPathParser(JSONPathSpec flattenSpec, com.fasterxml.jackson.databind.ObjectMapper mapper, boolean keepNullColumns) Constructor- Parameters:
flattenSpec- Provide a path spec for flattening and field discovery.mapper- Optionally provide an ObjectMapper, used by the parser for reading the input JSON.
-
-
Method Details
-
getFieldNames
Description copied from interface:ParserReturns the fieldNames that we expect to see in parsed Maps, if known, or null otherwise. Deprecated; Parsers should not, in general, be expected to know what fields they will return.- Specified by:
getFieldNamesin interfaceParser<String,Object>
-
setFieldNames
Description copied from interface:ParserSet the fieldNames that you expect to see in parsed Maps. Deprecated; Parsers should not, in general, be expected to know what fields they will return. Some individual types of parsers do need to know (like a TSV parser) and those parsers have their own way of setting field names.- Specified by:
setFieldNamesin interfaceParser<String,Object>
-
parseToMap
Description copied from interface:ParserParse a String into a Map. The result can be null which means the given input string will be ignored.- Specified by:
parseToMapin interfaceParser<String,Object> - Parameters:
input- JSON string. The root must be a JSON object, not an array. e.g., {"valid": "true"} and {"valid":[1,2,3]} are supported but [{"invalid": "true"}] and [1,2,3] are not.- Returns:
- A map of field names and values
-