This is the cl-json-pointer Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 05:03:49 2024 GMT+0.
cl-json-pointer/cl-json-pointer.asd
cl-json-pointer/core/src/package.lisp
cl-json-pointer/core/src/util.lisp
cl-json-pointer/core/src/condition.lisp
cl-json-pointer/core/src/parser.lisp
cl-json-pointer/core/src/traversal.lisp
cl-json-pointer/core/src/interface.lisp
cl-json-pointer/core/src/support.lisp
cl-json-pointer/core/src/support_cl-json.lisp
cl-json-pointer/core/src/support_com-gigamonkeys-json.lisp
cl-json-pointer/core/src/support_com-inuoe-jzon.lisp
cl-json-pointer/core/src/support_jonathan.lisp
cl-json-pointer/core/src/support_json-lib.lisp
cl-json-pointer/core/src/support_json-streams.lisp
cl-json-pointer/core/src/support_jsown.lisp
cl-json-pointer/core/src/support_shasht.lisp
cl-json-pointer/core/src/support_trivial-json-codec.lisp
cl-json-pointer/core/src/support_yason.lisp
cl-json-pointer/st-json-support/src/support_st-json.lisp
cl-json-pointer/boost-json-support/src/support_boost-json.lisp
The main system appears first, followed by any subsystem dependency.
cl-json-pointer
cl-json-pointer/core
cl-json-pointer/st-json-support
cl-json-pointer/boost-json-support
cl-json-pointer
A JSON Pointer (RFC6901) implementation for Common Lisp.
YOKOTA Yuki <y2q.actionman@gmail.com>
MIT
cl-json-pointer/core
(system).
cl-json-pointer/st-json-support
(system)., for feature :cl-json-pointer/st-json-support
cl-json-pointer/boost-json-support
(system)., for feature :cl-json-pointer/boost-json-support
cl-json-pointer/core
cl-json-pointer core files.
YOKOTA Yuki <y2q.actionman@gmail.com>
MIT
alexandria
(system).
closer-mop
(system).
src
(module).
cl-json-pointer/st-json-support
cl-json-pointer st-json support.
YOKOTA Yuki <y2q.actionman@gmail.com>
MIT
cl-json-pointer/core
(system).
st-json
(system).
src
(module).
cl-json-pointer/boost-json-support
cl-json-pointer boost-json support.
YOKOTA Yuki <y2q.actionman@gmail.com>
MIT
cl-json-pointer/core
(system).
src
(module).
Modules are listed depth-first from the system components tree.
cl-json-pointer/core/src
cl-json-pointer/core
(system).
package.lisp
(file).
util.lisp
(file).
condition.lisp
(file).
parser.lisp
(file).
traversal.lisp
(file).
interface.lisp
(file).
support.lisp
(file).
support_cl-json.lisp
(file).
support_com-gigamonkeys-json.lisp
(file).
support_com-inuoe-jzon.lisp
(file).
support_jonathan.lisp
(file).
support_json-lib.lisp
(file).
support_json-streams.lisp
(file).
support_jsown.lisp
(file).
support_shasht.lisp
(file).
support_trivial-json-codec.lisp
(file).
support_yason.lisp
(file).
cl-json-pointer/st-json-support/src
cl-json-pointer/st-json-support
(system).
support_st-json.lisp
(file).
cl-json-pointer/boost-json-support/src
cl-json-pointer/boost-json-support
(system).
support_boost-json.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
cl-json-pointer/cl-json-pointer.asd
cl-json-pointer/core/src/package.lisp
cl-json-pointer/core/src/util.lisp
cl-json-pointer/core/src/condition.lisp
cl-json-pointer/core/src/parser.lisp
cl-json-pointer/core/src/traversal.lisp
cl-json-pointer/core/src/interface.lisp
cl-json-pointer/core/src/support.lisp
cl-json-pointer/core/src/support_cl-json.lisp
cl-json-pointer/core/src/support_com-gigamonkeys-json.lisp
cl-json-pointer/core/src/support_com-inuoe-jzon.lisp
cl-json-pointer/core/src/support_jonathan.lisp
cl-json-pointer/core/src/support_json-lib.lisp
cl-json-pointer/core/src/support_json-streams.lisp
cl-json-pointer/core/src/support_jsown.lisp
cl-json-pointer/core/src/support_shasht.lisp
cl-json-pointer/core/src/support_trivial-json-codec.lisp
cl-json-pointer/core/src/support_yason.lisp
cl-json-pointer/st-json-support/src/support_st-json.lisp
cl-json-pointer/boost-json-support/src/support_boost-json.lisp
cl-json-pointer/cl-json-pointer.asd
cl-json-pointer
(system).
cl-json-pointer/core/src/util.lisp
package.lisp
(file).
src
(module).
array-try-push
(function).
clone-and-replace-on-cons
(function).
compare-string-by-readtable-case
(function).
delete-cons
(function).
extend-array
(function).
extend-list
(function).
remove-cons
(function).
thunk-lambda
(macro).
cl-json-pointer/core/src/condition.lisp
package.lisp
(file).
src
(module).
json-pointer-error
(condition).
json-pointer-access-error
(condition).
json-pointer-bad-reference-token-0-used-error
(condition).
json-pointer-bad-reference-token-error
(condition).
json-pointer-bad-reference-token-not-numeric-error
(condition).
json-pointer-parse-error
(condition).
cl-json-pointer/core/src/parser.lisp
condition.lisp
(file).
src
(module).
parse-json-pointer
(generic function).
+end+
(constant).
+parse-json-pointer-default-buffer-length+
(constant).
intern-object-key
(generic function).
parsed-json-pointer
(type).
read-reference-token-as-index
(function).
cl-json-pointer/core/src/traversal.lisp
util.lisp
(file).
condition.lisp
(file).
parser.lisp
(file).
src
(module).
*traverse-nil-set-to-index-method*
(special variable).
*traverse-nil-set-to-last-method*
(special variable).
*traverse-nil-set-to-name-method*
(special variable).
*traverse-object-like-kinds*
(special variable).
*traverse-treat-string-as-atom*
(special variable).
bad-deleter-error
(function).
chained-setter-lambda
(macro).
error-on-traversing-atom
(function).
list-try-traverse
(function).
traverse-by-json-pointer
(function).
traverse-by-reference-token
(generic function).
traverse-by-reference-token-using-class
(function).
vector-in-bounds-p
(function).
cl-json-pointer/core/src/interface.lisp
traversal.lisp
(file).
src
(module).
*json-object-flavor*
(special variable).
add-by-json-pointer
(function).
delete-by-json-pointer
(function).
deletef-by-json-pointer
(macro).
exists-p-by-json-pointer
(function).
(setf get-by-json-pointer)
(setf expander).
get-by-json-pointer
(function).
remove-by-json-pointer
(function).
set-by-json-pointer
(function).
update-by-json-pointer
(macro).
make-setter-by-json-pointer
(function).
cl-json-pointer/core/src/support.lisp
traversal.lisp
(file).
src
(module).
*cl-json-pointer-supported-json-flavors*
(special variable).
cl-json-pointer/core/src/support_cl-json.lisp
support.lisp
(file).
src
(module).
+identifier-name-to-key-name+
(constant).
+json-identifier-name-to-lisp-name+
(constant).
intern-object-key
(method).
cl-json-pointer/core/src/support_com-gigamonkeys-json.lisp
support.lisp
(file).
src
(module).
traverse-by-reference-token
(method).
traverse-by-reference-token
(method).
cl-json-pointer/core/src/support_com-inuoe-jzon.lisp
support.lisp
(file).
src
(module).
cl-json-pointer/core/src/support_jonathan.lisp
support.lisp
(file).
src
(module).
intern-object-key
(method).
traverse-by-reference-token
(method).
cl-json-pointer/core/src/support_json-lib.lisp
support.lisp
(file).
src
(module).
cl-json-pointer/core/src/support_json-streams.lisp
support.lisp
(file).
src
(module).
traverse-by-reference-token
(method).
traverse-by-reference-token
(method).
cl-json-pointer/core/src/support_jsown.lisp
support.lisp
(file).
src
(module).
traverse-by-reference-token
(method).
traverse-by-reference-token
(method).
cl-json-pointer/core/src/support_shasht.lisp
support.lisp
(file).
src
(module).
cl-json-pointer/core/src/support_trivial-json-codec.lisp
support.lisp
(file).
src
(module).
intern-object-key
(method).
traverse-by-reference-token
(method).
traverse-by-reference-token
(method).
traverse-by-reference-token
(method).
cl-json-pointer/core/src/support_yason.lisp
support.lisp
(file).
src
(module).
traverse-by-reference-token
(method).
cl-json-pointer/st-json-support/src/support_st-json.lisp
src
(module).
traverse-by-reference-token
(method).
cl-json-pointer/boost-json-support/src/support_boost-json.lisp
src
(module).
Packages are listed by definition order.
cl-json-pointer
alexandria
.
common-lisp
.
*cl-json-pointer-supported-json-flavors*
(special variable).
*json-object-flavor*
(special variable).
add-by-json-pointer
(function).
delete-by-json-pointer
(function).
deletef-by-json-pointer
(macro).
exists-p-by-json-pointer
(function).
(setf get-by-json-pointer)
(setf expander).
get-by-json-pointer
(function).
json-pointer-error
(condition).
parse-json-pointer
(generic function).
remove-by-json-pointer
(function).
set-by-json-pointer
(function).
update-by-json-pointer
(macro).
*traverse-nil-set-to-index-method*
(special variable).
*traverse-nil-set-to-last-method*
(special variable).
*traverse-nil-set-to-name-method*
(special variable).
*traverse-object-like-kinds*
(special variable).
*traverse-treat-string-as-atom*
(special variable).
+end+
(constant).
+identifier-name-to-key-name+
(constant).
+json-identifier-name-to-lisp-name+
(constant).
+parse-json-pointer-default-buffer-length+
(constant).
array-try-push
(function).
bad-deleter-error
(function).
chained-setter-lambda
(macro).
clone-and-replace-on-cons
(function).
compare-string-by-readtable-case
(function).
delete-cons
(function).
error-on-traversing-atom
(function).
extend-array
(function).
extend-list
(function).
intern-object-key
(generic function).
json-pointer-access-error
(condition).
json-pointer-bad-reference-token-0-used-error
(condition).
json-pointer-bad-reference-token-error
(condition).
json-pointer-bad-reference-token-not-numeric-error
(condition).
json-pointer-parse-error
(condition).
list-try-traverse
(function).
make-setter-by-json-pointer
(function).
parsed-json-pointer
(type).
read-reference-token-as-index
(function).
remove-cons
(function).
thunk-lambda
(macro).
traverse-by-json-pointer
(function).
traverse-by-reference-token
(generic function).
traverse-by-reference-token-using-class
(function).
vector-in-bounds-p
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Holds symbols acceptable by ‘*json-object-flavor*’ and :FLAVOR keyword argument (except ‘T’)
Default flavor of JSON library currently used.
This value is used for :FLAVOR argument of exported functions.
Currently acceptable values are held by ‘*cl-json-pointer-supported-json-flavors*’
Default is ‘t’, behaves as well as possible without any knowledge about JSON libs.
Modify macro of ‘delete-by-json-pointer’. This sets results of ‘delete-by-json-pointer’ to the referred place.
Modify macro of ‘set-by-json-pointer’. This sets results of ‘set-by-json-pointer’ to the referred place.
A setf expansion for allowing ‘setf’ to ‘(get-by-json-pointer ...)’ forms.
get-by-json-pointer
(function).
Works same as ‘set-by-json-pointer’, except this try to make a new list when setting to lists.
Traverses OBJ with POINTER, deletes the pointed place, and returns the modified OBJ
Traverses OBJ with POINTER and returns the existence of the place pointed by POINTER.
Traverses OBJ with POINTER and returns three values:
the found value (‘nil’ if not found), a generalized boolean saying the existence of the place pointed by POINTER, and NIL.
Works same as ‘delete-by-json-pointer’, except this try to make a new list when deleting from lists.
Traverses OBJ with POINTER, sets VALUE into the pointed place, and returns the modified OBJ
Parses OBJ to an internal representation
string
) &key start end accept-uri-fragment &allow-other-keys) ¶stream
) &key accept-uri-fragment &allow-other-keys) ¶list
) &key &allow-other-keys) ¶The root object of all errors related to cl-json-pointer
simple-error
.
A symbol indicates ’the (nonexistent) member after the last array element’, denoted by ’-’
Determines how to set to NIL by an index.
- ‘:list’ :: (Default) makes a new list and set <value> into nth point.
- ‘:alist’ :: pushes (reference-token . <value>) as an alist.
- ‘:plist’ :: appends (reference-token <value>) as an plist.
- ‘:error’ :: throws an error.
Determines how to set to the last (by ’-’) of NIL.
- ‘:list’ :: (Default) pushes <value> as an ordinal list.
- ‘:alist’ :: pushes (reference-token . <value>) as an alist.
- ‘:plist’ :: appends (reference-token <value>) as an plist.
- ‘:array’ :: makes a new array contains <value>.
Determines how to set to NIL by a name.
- ‘:alist’ :: (Default) pushes (reference-token . <value>) as an alist.
- ‘:plist’ :: appends (reference-token <value>) as an plist.
If this is T, cl-json-pointer trests string as atom.
Used for making thunks.
Makes a fresh list whose contents is same as LIST except the car of
CONS is replaced with VALUE. If CONS is not contained in LIST,
returns a new list by appending LIST, (list VALUE) and the cdr of CONS to the LIST.
Destructively modifies LIST to exclude the CONS and successive COUNT conses. If CONS is not contained in LIST, returns a list by ‘nconc’ing LIST and (nthcdr COUNT CONS).
Makes a new adjustable fill-pointered array having same contents as ARRAY.
Destructively extends LIST to size N.
Updating functions (‘set-by-json-pointer’, ‘delete-by-json-pointer’, etc) calls this for making a setter function.
Makes a fresh list whose contents is same as LIST except the CONS and successive COUNT conses. If CONS is not contained in LIST, returns a new list by appending LIST and (nthcdr COUNT CONS).
Traverses OBJ with a parsed json-pointer (POINTER), and returns three values:
the referred object, existence (boolean), and a closure can be used as a setter.
SET-METHOD determines how to _set_ into OBJ by the returned setter:
- ‘nil’ :: No setters made. (Do not set to OBJ.)
- ‘:update’ :: Destructively updates into OBJ.
- ‘:delete’ :: Destructively deletes from OBJ.
- ‘:add’ :: If changing a list, makes a new list containing the set’ed value. (non-list objs are still modified).
- ‘:remove’ :: If deleting form a list, makes a new list not containing the removed value. (non-list objs are still modified).
FLAVOR is a keyword specifies the JSON object flavors.
See ‘*cl-json-pointer-supported-json-flavors*’
Because ‘array-in-bounds-p’ ignores fill-pointers.
Interns RTOKEN as JSON object key, with JSON lib flavor of FLAVOR
(eql :trivial-json-codec)
) (rtoken string
)) ¶It seems trivial-json-codec ignores escape characters (backslashes).
For example, the result of
(trivial-json-codec:deserialize-raw cl-json-pointer/test::+test1-example+)
contains (:I\\J 5). I think this should be (:I\J 5)
But, this method treats it in that way.
(eql :jonathan)
) rtoken) ¶(eql :cl-json)
) rtoken) ¶symbol
)) ¶string
)) ¶Interns RTOKEN itself as JSON object key.
This is suitable for yason, st-json, jsown, json-streams, and com.gigamonkeys.json.
Traverses OBJ with a reference token (RTOKEN), and
returns three values: a referred object, existence (boolean), and a
closure can be used as a setter.
FLAVOR is used when OBJ’s type is ambiguous, especially lists.
jso
) rtoken set-method next-setter) ¶(eql :yason)
) (obj list
) (rtoken string
) set-method next-setter) ¶(eql :trivial-json-codec)
) (obj null
) rtoken set-method next-setter) ¶(eql :trivial-json-codec)
) (obj list
) (rtoken string
) set-method next-setter) ¶(eql :trivial-json-codec-alist)
) (alist list
) rtoken set-method next-setter) ¶The result of ‘trivial-json-codec:deserialize-raw’ looks like an
alist, but its cdr is wrapped by a cons:
(trivial-json-codec:deserialize-raw "{ \"a\": 1, \"b\": 2}" )
; => ((:A 1) (:B 2))
This method treats them specially.
(eql :jsown)
) (obj null
) rtoken set-method next-setter) ¶(eql :jsown)
) (obj list
) (rtoken string
) set-method next-setter) ¶(eql :json-streams)
) (obj null
) rtoken set-method next-setter) ¶(eql :json-streams)
) (obj list
) (rtoken string
) set-method next-setter) ¶(eql :jonathan)
) (obj null
) rtoken set-method next-setter) ¶(eql :com.gigamonkeys.json)
) (obj null
) rtoken set-method next-setter) ¶(eql :com.gigamonkeys.json)
) (obj list
) (rtoken string
) set-method next-setter) ¶array
) (rtoken string
) set-method next-setter) ¶array
) (rtoken integer
) set-method next-setter) ¶array
) (rtoken (eql -)
) set-method next-setter) ¶hash-table
) rtoken set-method next-setter) ¶structure-object
) rtoken set-method next-setter) ¶standard-object
) rtoken set-method next-setter) ¶null
) rtoken set-method next-setter) ¶list
) (rtoken string
) set-method next-setter) ¶list
) (rtoken integer
) set-method next-setter) ¶list
) (rtoken (eql -)
) set-method next-setter) ¶(eql :list)
) (list list
) (rtoken string
) set-method next-setter) ¶Indexing to an ordinal list.
(eql :list)
) (list list
) (index integer
) set-method next-setter) ¶Indexing to an ordinal list.
(eql :list)
) (list list
) (rtoken (eql -)
) set-method next-setter) ¶Pushing to an ordinal list.
(eql :plist)
) (plist list
) rtoken set-method next-setter) ¶(eql :alist)
) (alist list
) rtoken set-method next-setter) ¶string
) rtoken set-method next-setter) ¶Errors at traversing an object
Initarg | Value |
---|---|
:format-control | reference token (~a) must not start with '0' when used as an index |
Errors related to the json-pointer syntax
Initarg | Value |
---|---|
:format-control | bad reference token (~a) |
(quote nil)
:reference-token
Initarg | Value |
---|---|
:format-control | reference token (~a) cannot be read as index |
Thrown by ‘parse-json-pointer’
Jump to: | (
A B C D E F G I L M P R S T U V |
---|
Jump to: | (
A B C D E F G I L M P R S T U V |
---|
Jump to: | *
+
C R S |
---|
Jump to: | *
+
C R S |
---|
Jump to: | C F I J M P S T U |
---|
Jump to: | C F I J M P S T U |
---|