v3.0.0
A parser will now use a memory allocator to store JSON values of a
JSON array or the key-value pairs of a JSON object in an array of
vectors. The number of vectors does not depend on the size of the parsed
JSON text, but depends on the maximum nesting depth, specified when
instantiating JSON.Types.
JSON_Value no longer contains an Unbounded_String but instead contains
the offset and length of the string in the original stream. This avoids
copying the string and allocating many Unbounded_String.
The type Stream_Object has been removed since it does not allow random
access, which is needed for fetching strings from the stream.
A speed up of more than 4x compared to v2.0.0 or 17x compared to v1.0.0
has been achieved.
Changes
- Modify how parsed JSON values are stored to speed up parsing
- Avoid copying strings for string tokens
- Remove
Stream_Objectbecause of no support for random access