Subject: bug#46486: closed (bug#42994: 27.1; json-serialize unable to serialize JSON values)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 13 Feb 2021 13:41:02 +0000

Your bug report

#42994: 28.0.50; json-parse-string missing support for key-less json strings

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
42994: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=42994
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: bug#42994: 27.1; json-serialize unable to serialize JSON values
From: Philipp <[email-masked]>
To: [email-masked]
Date: Sat, 13 Feb 2021 14:40:18 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

I’ve now fixed this with commit 625de7e403.

Subject: 28.0.50; json-parse-string missing support for key-less json strings
From: Thomas Hisch <[email-masked]>
To: <[email-masked]>
Date: Sat, 13 Feb 2021 13:04:09 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The `json-read-from-string' function doesn't support json strings that
only contain a single value, which is neither a list nor a dict, e.g.

"123"

or

"\"abc\""

However, `json-read-from-string' doesn't have this issue:

(require 'json)
(json-read-from-string "\"abc\"")
-> "abc"

(json-parse-string "\"abc\"")
-> progn: could not parse JSON stream: "'[' or '{' expected near '\"abc\"'", "<string>", 1, 5, 5

Note that strings that neither start with [ nor { are valid JSON objects
according to the JSON schema.

Since the docstring of `json-parse-string' mentions `json-serialize' as
essentially being the reverse operation of `json-parse-string', I've
tried to serialize a lisp string:

(json-serialize "abc")
-> progn: Wrong type argument: json-value-p, "abc"

I would also expect this `json-serialize' call to work.

In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0, Xaw scroll bars)
 of 2021-02-12 built on thomas-XPS-13-9360
Repository revision: db237850abc240e2c3e765e9cc7e15ee5681dcaf
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12009000
System Description: Ubuntu 20.10

Configured using:
 'configure 'CFLAGS=-march=native -O3' --prefix=/opt/emacs
 --with-x-toolkit=lucid --with-xpm --without-jpeg --without-gif
 --without-tiff --with-modules --with-json'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JSON LIBSELINUX
LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG SOUND THREADS
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM LUCID ZLIB

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  counsel-projectile-mode: t
  counsel-mode: t
  ivy-rich-mode: t
  ivy-mode: t
  global-ethan-wspace-mode: t
  ethan-wspace-mode: t
  ethan-wspace-clean-many-nls-eof-mode: t
  ethan-wspace-clean-no-nl-eof-mode: t
  ethan-wspace-clean-eol-mode: t
  ethan-wspace-clean-tabs-mode: t
  save-place-mode: t
  show-paren-mode: t
  delete-selection-mode: t
  savehist-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  winner-mode: t
  window-numbering-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  thi::spell-fu-mode: t
  spell-fu-mode: t
  rainbow-delimiters-mode: t
  yas-minor-mode: t
  idle-highlight-mode: t
  async-bytecomp-package-mode: t
  highlight-function-calls-mode: t
  recentf-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  flx-ido-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  envrc-global-mode: t
  envrc-mode: t
  projectile-mode: t
  outline-minor-mode: t
  override-global-mode: t
  bug-reference-prog-mode: t
  url-handler-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Load-path shadows:
/home/thomas/.emacs.d/elpa/magit-20210209.1110/magit-section hides /home/thomas/.emacs.d/elpa/magit-section-20210124.1824/magit-section
/home/thomas/.emacs.d/user-lisp/custom hides /opt/emacs/share/emacs/28.0.50/lisp/custom

Features:
(shadow sort mail-extr emacsbug sendmail pulse vc-git cl-print debug
backtrace hippie-exp mule-util magit-bookmark bookmark url-cache
counsel-projectile counsel swiper ivy-rich ivy-hydra ivy ivy-faces
ivy-overlay colir ethan-wspace hideshow url-tramp ims-jira saveplace
ffap paren delsel savehist hi-lock thi-projects winner window-numbering
which-key wgrep-ag vterm-toggle tramp-sh vterm term disp-table ehelp
vterm-module term/xterm xterm visual-fill-column undo-tree
typescript-mode stickyfunc-enhance semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
ssh-config-mode sphinx-doc spell-fu smex
smart-mode-line-respectful-theme smart-mode-line-dark-theme
sanityinc-tomorrow-night-theme smart-mode-line rich-minority rg
rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history
rg-header cus-edit pp cus-start cus-load rainbow-delimiters
python-docstring py-isort pyimport shut-up protobuf-mode cc-langs
paredit magit-gerrit magit-gerrit-section magit-gerrit-comment-ui
magit-gerrit-requests magit-gerrit-comment lsp-ui lsp-ui-flycheck
lsp-ui-doc goto-addr lsp-ui-imenu lsp-ui-peek lsp-ui-sideline face-remap
lsp-mode yasnippet-snippets yasnippet spinner network-stream inline ewoc
bindat lsp-ui-util lsp-protocol ht idle-highlight-mode helm-projectile
helm-files docker-tramp tramp-cache tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat ls-lisp helm-tags helm-buffers
helm-occur helm-grep helm-regexp helm-utils helm-locate helm-help
helm-types helm async-bytecomp helm-global-bindings helm-easymenu
helm-source eieio-compat helm-multi-match helm-lib async
highlight-indentation highlight-function-calls gnus nnheader gerrit
gerrit-rest recentf tree-widget wid-edit forge-list forge-commands
forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea
forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub gnutls
forge-notify forge-revnote forge-pullreq forge-issue forge-topic
forge-post forge-repo forge forge-core forge-db closql emacsql-sqlite
emacsql emacsql-compiler url-http url-auth url-gw nsm magit-submodule
magit-obsolete magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff diff-mode git-commit log-edit message rmc puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config gnus-util
rmail rmail-loaddefs mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-libgit libgit libegit2
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process with-editor server magit-mode transient format-spec
magit-git magit-utils crm format-all language-id reformatter
flycheck-package package-lint let-alist imenu finder flycheck find-func
flx-ido ido flx evil evil-keybindings evil-integration evil-maps
evil-commands reveal flyspell ispell evil-jumps evil-command-window
evil-types evil-search evil-ex shell pcomplete evil-macros evil-repeat
evil-states evil-core advice evil-common windmove rect evil-digraphs
evil-vars equake envrc inheritenv ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs dumb-jump
popup dracula-theme diminish doom-themes doom-themes-base
color-theme-sanityinc-tomorrow cargo cargo-process markdown-mode
edit-indirect color rust-mode bufler projectile grep compile
text-property-search comint ansi-color ibuf-ext ibuffer ibuffer-loaddefs
thingatpt pretty-hydra hydra lv bufler-group-tree magit-section f s
dash-functional dash noutline outline vc vc-dispatcher parse-time
iso8601 time-date quelpa-use-package quelpa mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr lisp-mnt help-fns radix-tree cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key use-package-core finder-inf xref project
ring bug-reference xdg tab-line pcase easy-mmode edmacro kmacro rx info
package easymenu browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 860745 303250)
 (symbols 48 75095 48)
 (strings 32 356592 50903)
 (string-bytes 1 8345016)
 (vectors 16 98242)
 (vector-slots 8 2608232 546550)
 (floats 8 587 674)
 (intervals 56 18840 12630)
 (buffers 984 29))
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly prohibited.

IMS Nanofabrication GmbH FN: 208021 p, FB-Gericht: Wien; Sitz: Schreygasse 3, 1020, Vienna (Austria),Tel. +43 1 214 48 94; E-Mail: [email-masked]; DVR-Nr: 0374369; www.ims.co.at