Hi, I've been working on integrating my jsonrpc.el library with very new json.c library in Emacs 27. After adding plist support to json.c, I got jsonrpc.el mostly working (and eglot.el working on top of that). There is, however, a rough edge in json.c that is breaking core functionality in eglot.el: given that LSP servers may sometimes send :null as a key's value and sometimes omit the key completely, and given that JSON null is unavoidably parsed as the keyword :null, I have to explicitly check for non-`nil'ness *and* non-`:null'ness, whereas before only one check was necessary. Other applications may care about the subtle difference, but eglot.el (and, I think, LSP in general) doesn't. This patch adds two new keyword arguments to json-parse-string and json-parse-buffer to control this behaviour. This is analogous to json.el's `json-false' and `json-null'. The defaults I have chosen ensure the change is backward compatible, but maybe they needn't be, and other defaults compatible to json.el's could be chosen. This is because I don't know of any json.c users: AFAIK jsonrpc.el will be the first one. Patch attached, or find the code in the scratch/allow-custom-null-and-false-objects-in-jsonc branch Thanks, João