Requirements#

In addition to the common JSON requirements shared by the different backends (such as “vajson” and “”nlohmann_json”), “vajson” offers extended capabilities. These additional features are captured as requirements in the following section.

JSON Validation
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

vaJson shall provide a service to check the well-formedness of JSON data. Errors shall be reported including the error reason and the location in the JSON document for malformed JSON and invalid schemata (user-defined errors).

JSON Deserialization RFC extensions
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

vaJson shall provide a service to ignore trailing commas and accept hexadecimal integers.

JSON Event Callbacks
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

vaJson shall provide a service to listen to events for every parsed JSON item. The user shall be notified for every simple type directly, and for every complex type using start and end events.

Unicode Support
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

vaJson shall provide support for UTF-8 encoded strings. UTF-8 encoded strings shall be decoded and encoded by vaJson.

Binary Content Support
status: valid
security: NO
safety: ASIL_B
reqtype: Functional

vaJson shall allow for plain binary content and binary strings. Both types are represented as JSON values and handled accordingly (i.e., they must follow the JSON specification for values).