Package org.json

Class ParserConfiguration

java.lang.Object
org.json.ParserConfiguration
Direct Known Subclasses:
JSONMLParserConfiguration, JSONParserConfiguration, XMLParserConfiguration

public class ParserConfiguration extends Object
Configuration base object for parsers. The configuration is immutable.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    The default maximum nesting depth when parsing a document.
    protected boolean
    Specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
    protected int
    The maximum nesting depth when parsing a document.
    static final int
    Used to indicate there's no defined limit to the maximum nesting depth when parsing a document.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    Constructs a new ParserConfiguration with default settings.
    protected
    ParserConfiguration(boolean keepStrings, int maxNestingDepth)
    Constructs a new ParserConfiguration with the specified settings.
  • Method Summary

    Modifier and Type
    Method
    Description
    Provides a new instance of the same configuration.
    int
    The maximum nesting depth that the parser will descend before throwing an exception when parsing the XML into JSONML.
    boolean
    When parsing the XML into JSONML, specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
    <T extends ParserConfiguration>
    T
    withKeepStrings(boolean newVal)
    When parsing the XML into JSONML, specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
    <T extends ParserConfiguration>
    T
    withMaxNestingDepth(int maxNestingDepth)
    Defines the maximum nesting depth that the parser will descend before throwing an exception when parsing the XML into JSONML.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • UNDEFINED_MAXIMUM_NESTING_DEPTH

      public static final int UNDEFINED_MAXIMUM_NESTING_DEPTH
      Used to indicate there's no defined limit to the maximum nesting depth when parsing a document.
      See Also:
    • DEFAULT_MAXIMUM_NESTING_DEPTH

      public static final int DEFAULT_MAXIMUM_NESTING_DEPTH
      The default maximum nesting depth when parsing a document.
      See Also:
    • keepStrings

      protected boolean keepStrings
      Specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
    • maxNestingDepth

      protected int maxNestingDepth
      The maximum nesting depth when parsing a document.
  • Constructor Details

    • ParserConfiguration

      public ParserConfiguration()
      Constructs a new ParserConfiguration with default settings.
    • ParserConfiguration

      protected ParserConfiguration(boolean keepStrings, int maxNestingDepth)
      Constructs a new ParserConfiguration with the specified settings.
      Parameters:
      keepStrings - A boolean indicating whether to preserve strings during parsing.
      maxNestingDepth - An integer representing the maximum allowed nesting depth.
  • Method Details

    • clone

      protected ParserConfiguration clone()
      Provides a new instance of the same configuration.
      Overrides:
      clone in class Object
    • isKeepStrings

      public boolean isKeepStrings()
      When parsing the XML into JSONML, specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
      Returns:
      The keepStrings configuration value.
    • withKeepStrings

      public <T extends ParserConfiguration> T withKeepStrings(boolean newVal)
      When parsing the XML into JSONML, specifies if values should be kept as strings (true), or if they should try to be guessed into JSON values (numeric, boolean, string)
      Type Parameters:
      T - the type of the configuration object
      Parameters:
      newVal - new value to use for the keepStrings configuration option.
      Returns:
      The existing configuration will not be modified. A new configuration is returned.
    • getMaxNestingDepth

      public int getMaxNestingDepth()
      The maximum nesting depth that the parser will descend before throwing an exception when parsing the XML into JSONML.
      Returns:
      the maximum nesting depth set for this configuration
    • withMaxNestingDepth

      public <T extends ParserConfiguration> T withMaxNestingDepth(int maxNestingDepth)
      Defines the maximum nesting depth that the parser will descend before throwing an exception when parsing the XML into JSONML. The default max nesting depth is 512, which means the parser will throw a JsonException if the maximum depth is reached. Using any negative value as a parameter is equivalent to setting no limit to the nesting depth, which means the parses will go as deep as the maximum call stack size allows.
      Type Parameters:
      T - the type of the configuration object
      Parameters:
      maxNestingDepth - the maximum nesting depth allowed to the XML parser
      Returns:
      The existing configuration will not be modified. A new configuration is returned.