<cstdio>, <cstdlib>, <cstring>, <inttypes.h>, <new>, <stdint.h>."\u0000")["Hello\u0000World"] can be parsed and handled gracefully. There is API for getting/setting lengths of string.// ...) and multiple line (/* ... */) comments (kParseCommentsFlag).kParseTrailingCommasFlag).NaN, Inf, Infinity, -Inf and -Infinity as double values (kParseNanAndInfFlag)char for UTF8, wchar_t for UTF16, uint32_t for UTF32.rapidjson::GenericReader). It also provides a generator API (rapidjson::Writer) which consumes the same set of events.rapidjson::GenericDocument), for easy manipulation, and finally stringify back to JSON if needed.rapidjson::GenericDocument) is actually implemented with SAX style API (rapidjson::GenericReader). SAX is faster but sometimes DOM is easier. Users can pick their choices according to scenarios.double for JSON number type.kParseStopWhenDoneFlag).Value internally without additional allocation.std::string (define RAPIDJSON_HAS_STDSTRING=1)rapidjson::PrettyWriter for adding newlines and indentations.rapidjson::GenericStringBuffer for storing the output JSON as string.rapidjson::FileReadStream and rapidjson::FileWriteStream for input/output FILE object.noexcept specifier