Class JsonParser

java.lang.Object
net.sf.saxon.ma.json.JsonParser

public class JsonParser extends Object
Parser for JSON, which notifies parsing events to a JsonHandler
  • Field Details

  • Constructor Details

    • JsonParser

      public JsonParser()
      Create a JSON parser
  • Method Details

    • parse

      public void parse(IntIterator input, int flags, JsonHandler handler, XPathContext context) throws XPathException
      Parse the JSON string according to supplied options
      Parameters:
      input - JSON input string, supplied as an iterator over Unicode codepoints
      flags - options for the conversion as a map of xs:string : value pairs
      handler - event handler to which parsing events are notified
      context - the XPath evaluation context
      Throws:
      XPathException - if the syntax of the input is incorrect
    • getFlags

      public static int getFlags(Map<String,GroundedValue> options, boolean allowValidate, boolean isSchemaAware) throws XPathException
      Extract the requested JSON parsing options as a set of flags in a bit-significant integer
      Parameters:
      options - the supplied options map
      allowValidate - true if the validate option is permitted
      isSchemaAware - true if the processor is schema-aware (only relevant when allowValidate=true)
      Returns:
      the options as a sef of flags
      Throws:
      XPathException - if any options are invalid
    • showToken

      public static String showToken(JsonParser.JsonToken token, UnicodeString currentTokenValue)
    • setNumberParser

      public void setNumberParser(Map<String,GroundedValue> options) throws XPathException
      Throws:
      XPathException
    • obtainShape

      public Shape obtainShape(List<UnicodeString> keyList)
      Given a list of keys present in a JSON map/object, find a Shape that can be used to create a shaped map for these keys. The thinking is that in JSON, many maps/objects will often have the same set of keys and this can be used to optimize storage and retrieval
      Parameters:
      keyList - the list of keys
      Returns:
      a Shape corresponding to this list of keys. Shapes are pooled at the level of the JSON parser, so two records in the same JSON document with the same set of keys will share the same Shape object.