ParserConfiguration (JSON in Java 20240205 API)

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 int` | `DEFAULT_MAXIMUM_NESTING_DEPTH` | The default maximum nesting depth when parsing a document.
    `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)
    `protected int` | `maxNestingDepth` | The maximum nesting depth when parsing a document.
    `static int` | `UNDEFINED_MAXIMUM_NESTING_DEPTH` | Used to indicate there's no defined limit to the maximum nesting depth when parsing a document.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `ParserConfiguration()` |
    `protected` | `ParserConfiguration​(boolean keepStrings, int maxNestingDepth)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected ParserConfiguration` | `clone()` | Provides a new instance of the same configuration.
    `int` | `getMaxNestingDepth()` | The maximum nesting depth that the parser will descend before throwing an exception when parsing the XML into JSONML.
    `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)
    `<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 Detail

    - #### 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:
        Constant Field Values

    - #### DEFAULT_MAXIMUM_NESTING_DEPTH

          public static final int DEFAULT_MAXIMUM_NESTING_DEPTH

      The default maximum nesting depth when parsing a document.
      See Also:
        Constant Field Values

    - #### 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 Detail

    - #### ParserConfiguration

          public ParserConfiguration()

    - #### ParserConfiguration

          protected ParserConfiguration​(boolean keepStrings,
                                        int maxNestingDepth)

  - ### Method Detail

    - #### 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.