GNU bug report logs - #15097
24.3.50; json.el can't encode lists of lists

Previous Next

Package: emacs;

Reported by: Rolando Pereira <rolando_pereira <at> sapo.pt>

Date: Wed, 14 Aug 2013 22:46:02 UTC

Severity: normal

Found in version 24.3.50

Done: Daniel Colascione <dancol <at> dancol.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Rolando Pereira <rolando_pereira <at> sapo.pt>
To: 15097 <at> debbugs.gnu.org
Subject: bug#15097: 24.3.50; json.el can't encode lists of lists
Date: Wed, 14 Aug 2013 23:44:36 +0100
Hello all,

The function `json-encode' can't encode a list thats composed only of other
lists, i.e. the following doesn't work:

    (json-encode '((1 2 3))) => Error: (json-key-format 1)

If I had an extra "nil" in the topmost list `json-encode' then it works
fine:

    (json-encode '((1 2 3) nil)) => "[[1,2,3],null]"

However if I replace the `nil' with another list then I get the same
error:

    (json-encode '((1 2 3) (4))) => Error: (json-key-format 1)

Here's a small ERT test that should trigger the bug:

    (ert-deftest json-encode-list-of-lists-test ()
      (ert-should (string= (json-encode '(1 2 3)) "[1,2,3]"))              ; works
      (ert-should (string= (json-encode '((1) 2 3)) "[[1],2,3]"))          ; works
      (ert-should (string= (json-encode '((1 2 3))) "[[1,2,3]]"))          ; doesn't work
      (ert-should (string= (json-encode '((1 2 3) nil)) "[[1,2,3],null]")) ; works
      (ert-should (string= (json-encode '((1 2 3) (4))) "[[1,2,3],[4]]"))  ; doesn't work
      )


Best regards,
Rolando Pereira




This bug report was last modified 11 years and 65 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.