Skip to content

Roadmap [Deprecated]

Jordan Bayles edited this page May 5, 2026 · 4 revisions

This roadmap is preserved for historical context and contains goals that have largely been addressed or superseded.

Adding a strict mode to reader/parser

Strict JSON support as specified in RFC 4627.

  • Enforce only object or array as root element.
  • Disable comment support.
    • Get jsonchecker failing tests to pass in strict mode.

Writer control

Provides more control to determine how specific items are serialized when JSON allows choice:

  • Optionally allow escaping of non-ASCII characters using unicode escape sequence \u.
  • Optionally allow escaping of / using \/.

Exposing json reader/writer API that do not impose using Json::Value

Some typical use-cases involve an application-specific structure to/from a JSON document.

  • Event-based parser to allow unserializing a JSON document directly into a data structure instead of using the intermediate Json::Value.
  • Stream-based parser to serialize a JSON document without using Json::Value as input.

Performance-oriented parser/writer

  • Provide an event-based parser. Should allow pulling & skipping events for ease of use.
  • Provide a JSON document builder: fast only.

Performance tuning

  • Provide support for static property name definition avoiding allocation.
  • Static property dictionary can be provided to JSON reader.
  • Performance scenario & benchmarking.

Testing

  • Add more tests for Unicode parsing (e.g., including surrogate and error detection).

Making JsonCpp ready for release

  • Build system clean-up:
    • Fix build on Windows (shared-library build is broken).
    • Compile and run tests using shared library on Windows to ensure no JSON_API macro is missing.
    • Add enable/disable flag for static and shared library build.
    • Enhance help.
  • Platform portability check:
    • Linux/GCC
    • Solaris/CC
    • Windows/MSVC
    • AIX/VACPP
  • Add JsonCpp version to header as numeric for use in preprocessor test.
  • Remove buggy experimental hash stuff.

Clone this wiki locally