Class JSONPathParser

java.lang.Object
org.apache.druid.java.util.common.parsers.JSONPathParser
All Implemented Interfaces:
Parser<String,Object>

public class JSONPathParser extends Object implements Parser<String,Object>
JSON parser class that uses the JsonPath library to access fields via path expressions.
  • 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

      public List<String> getFieldNames()
      Description copied from interface: Parser
      Returns 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:
      getFieldNames in interface Parser<String,Object>
    • setFieldNames

      public void setFieldNames(Iterable<String> fieldNames)
      Description copied from interface: Parser
      Set 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:
      setFieldNames in interface Parser<String,Object>
    • parseToMap

      public Map<String,Object> parseToMap(String input)
      Description copied from interface: Parser
      Parse a String into a Map. The result can be null which means the given input string will be ignored.
      Specified by:
      parseToMap in interface Parser<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