]> code.delx.au - gnu-emacs/commit
Enable sorting of JSON object keys when encoding
authorSimen Heggestøyl <simenheg@gmail.com>
Thu, 12 Nov 2015 17:30:37 +0000 (18:30 +0100)
committerSimen Heggestøyl <simenheg@gmail.com>
Thu, 12 Nov 2015 17:30:37 +0000 (18:30 +0100)
commit1e363a8ea5ac09455f3a44fbb646b5af32bca51c
tree7b9ab75057951d32892cb50a31c5880c941caf23
parent9dd7da9945c16aa343080a535ed74eeecf769fd1
Enable sorting of JSON object keys when encoding

* lisp/json.el (json-encoding-object-sort-predicate): New variable for
specifying a sorting predicate for JSON objects during encoding.
(json--plist-to-alist): New utility function.
(json-encode-hash-table): Re-use `json-encode-alist' when object keys
are to be sorted.
(json-encode-alist): Sort output by
`json-encoding-object-sort-predicate, when set.
(json-encode-plist): Re-use `json-encode-alist' when object keys are
to be sorted.
(json-pretty-print-buffer-ordered): New command to pretty print the
buffer with object keys sorted alphabetically.
(json-pretty-print-ordered): New command to pretty print the region with
object keys sorted alphabetically.

* test/automated/json-tests.el (test-json-plist-to-alist)
(test-json-encode-plist, test-json-encode-hash-table)
(test-json-encode-alist-with-sort-predicate)
(test-json-encode-plist-with-sort-predicate): New tests.

* etc/NEWS: Add an entry for the new commands.
etc/NEWS
lisp/json.el
test/automated/json-tests.el