json: Parse all standard escape sequences.

Only escaped UTF-16 wydes above 127 are not supported yet.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Add the `Jsonable` interface.

Add an interface for objects that can be translated into JSON.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Make `json_to_nit_object` returns a `Jsonable`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Add `JsonParseError`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Return a `JsonParseError` on failure.

Distinguish an error from `null`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Rename `json_to_nit_object` to `parse_json`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Document `parse_json`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Update the documentation of the main module.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Add error handling to `dynamic`.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
neo4j: Use the `json` library.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json_serialization: Use `to_json` to escape characters.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
nitdoc: Use `to_json` to escape JSON values.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
json: Allow to buffer writings.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
nitdoc: Do not overwrite search results.

Fix the main problem of #882 by avoiding the overwriting of a search
entry when 2 entities has the same name.

TODO: Make the presentation of duplicates less ambiguous.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>