]> git.eshelyaron.com Git - emacs.git/commit
Allow any JSON value at the top level (Bug#42994).
authorPhilipp Stephani <phst@google.com>
Sat, 13 Feb 2021 13:25:42 +0000 (14:25 +0100)
committerPhilipp Stephani <phst@google.com>
Sat, 13 Feb 2021 13:37:19 +0000 (14:37 +0100)
commit625de7e403abb24c2d6ae417622fa8c7d6f55530
tree9e8f67fff1a1551922a5f9ba297269e2118ce199
parent856502d80d0a3ccfe8c80b65290fdb00e8813391
Allow any JSON value at the top level (Bug#42994).

Newer standards like RFC 8259, which obsoletes the earlier RFC 4627,
now allow any top-level value unconditionally, so Emacs should too.

* src/json.c (Fjson_serialize, Fjson_insert): Pass JSON_ENCODE_ANY to
allow serialization of any JSON value.  Call 'lisp_to_json' instead of
'lisp_to_json_toplevel'.  Remove obsolete comments
(neither JSON_DECODE_ANY nor JSON_ALLOW_NUL are allowed here).  Reword
documentation strings.
(Fjson_parse_string, Fjson_parse_buffer): Pass JSON_DECODE_ANY to
allow deserialization of any JSON value.  Reword documentation
strings.
(lisp_to_json_nonscalar, lisp_to_json_nonscalar_1): Rename from
"toplevel" to avoid confusion.
(lisp_to_json): Adapt caller.
* test/src/json-tests.el (json-serialize/roundtrip-scalars): New unit
test.
* doc/lispref/text.texi (Parsing JSON): Update documentation.
doc/lispref/text.texi
src/json.c
test/src/json-tests.el