JSON handling framework for Common Lisp
NJSON aims to make it convenient for one to decode, encode, and process JSON data, in the minimum keystrokes/minutes possible.
NJSON is parser-independent, with existing Common Lisp JSON parsers being loadable as additional system. jzon
and cl-json
backends are included by default, though. Conveniences that NJSON provides are:
encode
and decode
as single entry points for JSON reading and writing, be it from streams/string/files, or from those.
jget
, jrem
, jtruep
, and their aliases to access/delete the decoded objects' properties and check their truth value without the need to worry about the low-level details of how these values are decoded.
jif
, jwhen
, jor
, jand
, and other macros mimicking Lisp ones, while using truth values of JSON-decoded data.
njson/aliases
package to nickname to j
for all the forms conveniently accessible as j:rem
, j:get
, j:if
etc.
System | Target | Derivation | Build status |
---|---|---|---|
x86_64-linux | /gnu/store/8igljfhrncns5amxr1a14h971rhr39qa-ecl-njson-1.1.0.drv | ||
riscv64-linux | /gnu/store/np7f8qgp1yw4zp3rv1c1zmg3nfgxy5lq-ecl-njson-1.1.0.drv | ||
powerpc-linux | /gnu/store/9wnw0xlmwvxwlabmrfzix5m56h9qrq0d-ecl-njson-1.1.0.drv | ||
powerpc64le-linux | /gnu/store/7ryzi6wsq4d5f722lpmcdl6ja7i3y2yc-ecl-njson-1.1.0.drv | ||
mips64el-linux | /gnu/store/nzmh87v0h821dc7fkn58bmlkkpm62n6r-ecl-njson-1.1.0.drv | ||
i686-linux | /gnu/store/arkb0n9a9hq1whp5zxsdbx9rq8afia01-ecl-njson-1.1.0.drv | ||
i586-gnu | /gnu/store/8s7mxqlga08xw2l7mcmd9r2yds6ml66i-ecl-njson-1.1.0.drv | ||
armhf-linux | /gnu/store/sg0zkqyhxyp82mj4sha0crrv4wpdzii2-ecl-njson-1.1.0.drv | ||
aarch64-linux | /gnu/store/41xn9ir99k8lm474c6c6cp9pahdz5f0y-ecl-njson-1.1.0.drv |
Linter | Message | Location |
---|---|---|
input-labels Identify input labels that do not match package names | label 'sbcl-lisp-unit2' does not match package name 'ecl-lisp-unit2' | |
input-labels Identify input labels that do not match package names | label 'sbcl-cl-json' does not match package name 'ecl-cl-json' | |
input-labels Identify input labels that do not match package names | label 'sbcl-jzon' does not match package name 'ecl-jzon' | |
input-labels Identify input labels that do not match package names | label 'sbcl-lisp-unit2' does not match package name 'ecl-lisp-unit2' | |
input-labels Identify input labels that do not match package names | label 'sbcl-cl-json' does not match package name 'ecl-cl-json' | |
input-labels Identify input labels that do not match package names | label 'sbcl-jzon' does not match package name 'ecl-jzon' |