The cl-json Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-json Reference Manual

This is the cl-json Reference Manual, version 0.5.0, generated automatically by Declt version 2.3 "Robert April" on Tue Feb 20 08:07:29 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

CL-JSON

CL-JSON provides an encoder of Lisp objects to JSON format and a corresponding decoder of JSON data to Lisp objects. Both the encoder and the decoder are highly customizable; at the same time, the default settings ensure a very simple mode of operation, similar to that provided by YASON or ST-JSON. CL-JSON is well tested and the automated testcases includes the JSON_checker tests.

History

Licence

MIT.

Documentation

Documentation is at the project page on common-lisp.net.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 cl-json

Maintainer

Henrik Hjelte <henrik@henrikhjelte.com>

License

MIT

Description

JSON in Lisp. JSON (JavaScript Object Notation) is a lightweight data-interchange format.

Version

0.5.0

Source

cl-json.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 cl-json/src

Parent

cl-json (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Next: , Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 cl-json.asd

Location

cl-json.asd

Systems

cl-json (system)

Packages

json-system

Internal Definitions

*cl-json-directory* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 cl-json/src/package.lisp

Parent

src (module)

Location

src/package.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 cl-json/src/common.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/common.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 cl-json/src/objects.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/objects.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 cl-json/src/camel-case.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/camel-case.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 cl-json/src/decoder.lisp

Dependencies
Parent

src (module)

Location

src/decoder.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 cl-json/src/encoder.lisp

Dependencies
Parent

src (module)

Location

src/encoder.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 cl-json/src/utils.lisp

Dependencies
Parent

src (module)

Location

src/utils.lisp

Exported Definitions

json-bind (macro)

Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.9 cl-json/src/json-rpc.lisp

Dependencies
Parent

src (module)

Location

src/json-rpc.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Files   [Contents][Index]

4.2 Other


Previous: , Up: Other files   [Contents][Index]

4.2.1 cl-json/cl-json.asd

Parent

cl-json (system)

Location

cl-json.asd


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 json-system

Source

cl-json.asd

Use List
Internal Definitions

*cl-json-directory* (special variable)


Next: , Previous: , Up: Packages   [Contents][Index]

5.2 json-rpc

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.3 json

Source

package.lisp (file)

Nickname

cl-json

Use List

common-lisp

Used By List

json-rpc

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Constants

Constant: +json-rpc-1.1+
Package

json-rpc

Source

json-rpc.lisp (file)

Constant: +json-rpc-2.0+
Package

json-rpc

Source

json-rpc.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Special variables

Special Variable: *aggregate-scope-variables*

A list of symbols naming dynamic variables which should be re-bound in the scope of every JSON aggregate value (Object, Array or String).

Package

json

Source

decoder.lisp (file)

Special Variable: *array-member-handler*

Designator for a function of 1 arbitrary argument (decoded member of Array).

Package

json

Source

decoder.lisp (file)

Special Variable: *array-scope-variables*

A list of symbols naming dynamic variables which should be re-bound in the scope of every JSON Array.

Package

json

Source

decoder.lisp (file)

Special Variable: *beginning-of-array-handler*

Designator for a function of no arguments (called at encountering an opening bracket for an Array).

Package

json

Source

decoder.lisp (file)

Special Variable: *beginning-of-object-handler*

Designator for a function of no arguments (called at encountering an opening brace for an Object).

Package

json

Source

decoder.lisp (file)

Special Variable: *beginning-of-string-handler*

Designator for a function of no arguments (called at encountering an opening quote for a String).

Package

json

Source

decoder.lisp (file)

Special Variable: *boolean-handler*

Designator for a function of 1 string argument (boolean token).

Package

json

Source

decoder.lisp (file)

Special Variable: *end-of-array-handler*

Designator for a function of no arguments (called at encountering a closing bracket for an Array).

Package

json

Source

decoder.lisp (file)

Special Variable: *end-of-object-handler*

Designator for a function of no arguments (called at encountering a closing brace for an Object).

Package

json

Source

decoder.lisp (file)

Special Variable: *end-of-string-handler*

Designator for a function of no arguments (called at encountering a closing quote for a String).

Package

json

Source

decoder.lisp (file)

Special Variable: *identifier-name-to-key*

Designator for a function which, during decoding, maps the *json-identifier-name-to-lisp* -transformed key to the value it will have in the result object.

Package

json

Source

common.lisp (file)

Special Variable: *integer-handler*

Designator for a function of 1 string argument (integer token).

Package

json

Source

decoder.lisp (file)

Special Variable: *internal-decoder*

Designator for a function of 1 stream argument called (instead of DECODE-JSON) to decode a member of an Array or of an Object.

Package

json

Source

decoder.lisp (file)

Special Variable: *json-array-type*

The Lisp sequence type to which JSON Arrays are to be coerced.

Package

json

Source

decoder.lisp (file)

Special Variable: *json-identifier-name-to-lisp*

Designator for a function which maps string (a JSON Object key) to string (name of a Lisp symbol).

Package

json

Source

common.lisp (file)

Special Variable: *json-input*

The default input stream for decoding operations.

Package

json

Source

decoder.lisp (file)

Special Variable: *json-output*

The default output stream for encoding operations.

Package

json

Source

encoder.lisp (file)

Special Variable: *json-rpc-version*

Bind this variable to influence whether you want to use JSON-RPC version 1.1 or 2.0.

Package

json-rpc

Source

json-rpc.lisp (file)

Special Variable: *json-symbols-package*

The package where JSON Object keys etc. are interned. Default KEYWORD, NIL = use current *PACKAGE*.

Package

json

Source

common.lisp (file)

Special Variable: *lisp-identifier-name-to-json*

Designator for a function which maps string (name of a Lisp symbol) to string (e. g. JSON Object key).

Package

json

Source

common.lisp (file)

Special Variable: *object-key-handler*

Designator for a function of 1 string argument (decoded member key of Object).

Package

json

Source

decoder.lisp (file)

Special Variable: *object-scope-variables*

A list of symbols naming dynamic variables which should be re-bound in the scope of every JSON Object.

Package

json

Source

decoder.lisp (file)

Special Variable: *object-value-handler*

Designator for a function of 1 arbitrary argument (decoded member value of Object).

Package

json

Source

decoder.lisp (file)

Special Variable: *prototype-name*

The key of the prototype field in a JSON Object, and the name of a slot in a Lisp object which accepts its prototype.

Package

json

Source

objects.lisp (file)

Special Variable: *real-handler*

Designator for a function of 1 string argument (real token).

Package

json

Source

decoder.lisp (file)

Special Variable: *string-char-handler*

Designator for a function of 1 character argument (String char).

Package

json

Source

decoder.lisp (file)

Special Variable: *string-scope-variables*

A list of symbols naming dynamic variables which should be re-bound in the scope of every JSON String.

Package

json

Source

decoder.lisp (file)

Special Variable: *use-strict-json-rules*

If non-nil, signal error on unrecognized escape sequences in JSON Strings. If nil, translate any such sequence to the char after slash.

Package

json

Source

common.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Macros

Macro: as-array-member (&optional STREAM) &body BODY

BODY should be a program which encodes exactly one JSON datum to STREAM. AS-ARRAY-MEMBER ensures that the datum is properly formatted as a Member of an Array, i. e. separated by comma from any preceding or following Member.

Package

json

Source

encoder.lisp (file)

Macro: as-object-member (KEY &optional STREAM) &body BODY

BODY should be a program which writes exactly one JSON datum to STREAM. AS-OBJECT-MEMBER ensures that the datum is properly formatted as a Member of an Object, i. e. preceded by the (encoded) KEY and colon, and separated by comma from any preceding or following Member.

Package

json

Source

encoder.lisp (file)

Macro: bind-custom-vars (&rest CUSTOMIZATIONS) &body BODY
Package

json

Source

common.lisp (file)

Macro: current-decoder &rest KEYS

Capture current values of custom variables and return a custom decoder which restores these values in its dynamic environment.

Package

json

Source

decoder.lisp (file)

Macro: custom-decoder &rest CUSTOMIZATIONS

Return a function which is like DECODE-JSON called in a dynamic environment with the given CUSTOMIZATIONS.

Package

json

Source

decoder.lisp (file)

Macro: def-json-rpc-encoding KEYWORD (VAR) &rest BODY

Define a new encoding keyword, KEYWORD. When the encoding is invoked, the raw value will be bound to VAR, and the BODY should return the encoded value.

Package

json-rpc

Source

json-rpc.lisp (file)

Macro: defun-json-rpc NAME TYPE LAMBDA-LIST &body BODY

Defines a function and registers it as a json-rpc target.

Package

json-rpc

Source

json-rpc.lisp (file)

Macro: json-bind (&rest VARS) JSON-SOURCE &body BODY
Package

json

Source

utils.lisp (file)

Macro: set-custom-vars &rest CUSTOMIZATIONS
Package

json

Source

common.lisp (file)

Macro: with-array (&optional STREAM) &body BODY

Open a JSON Array, run BODY, then close the Array. Inside the BODY, AS-ARRAY-MEMBER or ENCODE-ARRAY-MEMBER should be called to encode Members of the Array.

Package

json

Source

encoder.lisp (file)

Macro: with-custom-decoder-level (&rest CUSTOMIZATIONS) &body BODY

Execute BODY in a dynamic environment such that, when nested structures are decoded, the outermost level is decoded with the given custom handlers (CUSTOMIZATIONS) whereas inner levels are decoded in the usual way.

Package

json

Source

decoder.lisp (file)

Macro: with-decoder-simple-clos-semantics &body BODY

Execute BODY in a dynamic environement where the decoder semantics is such as set by SET-DECODER-SIMPLE-CLOS-SEMANTICS.

Package

json

Source

decoder.lisp (file)

Macro: with-decoder-simple-list-semantics &body BODY

Execute BODY in a dynamic environement where the decoder semantics is such as set by SET-DECODER-SIMPLE-LIST-SEMANTICS.

Package

json

Source

decoder.lisp (file)

Macro: with-explicit-encoder &body BODY
Package

json

Source

encoder.lisp (file)

Macro: with-guessing-encoder &body BODY
Package

json

Source

encoder.lisp (file)

Macro: with-local-class-registry (&key INHERIT) &body BODY

Run BODY in a dynamic environment where *CLASS-REGISTRY* is a temporary local list. If :INHERIT is non-null, the local registry shall initially have the same content as the exterior *CLASS-REGISTRY*, otherwise it shall be NIL.

Package

json

Source

objects.lisp (file)

Macro: with-object (&optional STREAM) &body BODY

Open a JSON Object, run BODY, then close the Object. Inside the BODY, AS-OBJECT-MEMBER or ENCODE-OBJECT-MEMBER should be called to encode Members of the Object.

Package

json

Source

encoder.lisp (file)

Macro: with-shadowed-custom-vars &body BODY
Package

json

Source

common.lisp (file)

Macro: with-substitute-printed-representation-restart (OBJECT STREAM) &body BODY

Establish a SUBSTITUTE-PRINTED-REPRESENTATION restart for OBJECT and execute BODY.

Package

json

Source

encoder.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Functions

Function: camel-case-to-lisp STRING

Take a camel-case string and convert it into a string with Lisp-style hyphenation.

Package

json

Source

camel-case.lisp (file)

Function: clear-class-registry ()

Reset the *CLASS-REGISTRY* to NIL.

Package

json

Source

objects.lisp (file)

Function: clear-exported ()
Package

json-rpc

Source

json-rpc.lisp (file)

Function: decode-json &optional STREAM

Read a JSON Value from STREAM and return the corresponding Lisp value.

Package

json

Source

decoder.lisp (file)

Function: decode-json-from-source SOURCE &optional DECODER

Decode a JSON Value from SOURCE using the value of DECODER (default ’DECODE-JSON) as decoder function. If the SOURCE is a string, the input is from this string; if it is a pathname, the input is from the file that it names; otherwise, a stream is expected as SOURCE.

Package

json

Source

decoder.lisp (file)

Function: decode-json-from-string JSON-STRING

Read a JSON Value from JSON-STRING and return the corresponding Lisp value.

Package

json

Source

decoder.lisp (file)

Function: decode-json-strict &optional STREAM

Same as DECODE-JSON, but allow only Objects or Arrays on the top level, no junk afterwards.

Package

json

Source

decoder.lisp (file)

Function: encode-array-member OBJECT &optional STREAM

Encode OBJECT as the next Member of the innermost JSON Array opened with WITH-ARRAY in the dynamic context. OBJECT is encoded using the ENCODE-JSON generic function, so it must be of a type for which an ENCODE-JSON method is defined.

Package

json

Source

encoder.lisp (file)

Function: encode-json-alist ALIST &optional STREAM

Write the JSON representation (Object) of ALIST to STREAM (or to *JSON-OUTPUT*). Return NIL.

Package

json

Source

encoder.lisp (file)

Function: encode-json-alist-to-string ALIST

Return the JSON representation (Object) of ALIST as a string.

Package

json

Source

encoder.lisp (file)

Function: encode-json-plist PLIST &optional STREAM

Write the JSON representation (Object) of PLIST to STREAM (or to *JSON-OUTPUT*). Return NIL.

Package

json

Source

encoder.lisp (file)

Function: encode-json-plist-to-string PLIST

Return the JSON representation (Object) of PLIST as a string.

Package

json

Source

encoder.lisp (file)

Function: encode-json-to-string OBJECT

Return the JSON representation of OBJECT as a string.

Package

json

Source

encoder.lisp (file)

Function: encode-object-member KEY VALUE &optional STREAM

Encode KEY and VALUE as a Member pair of the innermost JSON Object opened with WITH-OBJECT in the dynamic context. KEY and VALUE are encoded using the ENCODE-JSON generic function, so they both must be of a type for which an ENCODE-JSON method is defined. If KEY does not encode to a String, its JSON representation (as a string) is encoded over again.

Package

json

Source

encoder.lisp (file)

Function: export-as-json-rpc FUNC FUNCTION-NAME &optional TYPE

Registers a lambda function FUNC as a json-rpc function.
TYPE determines how the return value of FUNC should be interpreted: :explicit using the explicit encoder syntax,
:guessing using the guessing encode syntax
:streaming as a raw JSON string.

Package

json-rpc

Source

json-rpc.lisp (file)

Function: invoke-rpc JSON-SOURCE

A remote method is invoked by sending a request to a remote service. The request is a single object serialized using JSON.

It has three properties:

* method - A String containing the name of the method to be invoked.
* params - An Array of objects to pass as arguments to the method.
* id - The request id. This can be of any type. It is used to match the response with the request that it is replying to.

Package

json-rpc

Source

json-rpc.lisp (file)

Function: invoke-rpc-parsed METHOD PARAMS &optional ID
Package

json-rpc

Source

json-rpc.lisp (file)

Function: json-bool VALUE

Intended for the JSON-EXPLICT-ENCODER. Converts a non-nil value to a value (:true) that creates a json true value when used in the explict encoder. Or (:false).

Package

json

Source

encoder.lisp (file)

Function: json-intern STRING

Intern STRING in the current *JSON-SYMBOLS-PACKAGE*.

Package

json

Source

common.lisp (file)

Function: json-or-null VALUE

Intended for the JSON-EXPLICT-ENCODER. Returns a non-nil value as itself, or a nil value as a json null-value

Package

json

Source

encoder.lisp (file)

Function: json-syntax-error STREAM FORMAT-CONTROL &rest FORMAT-ARGUMENTS

Signal a JSON-SYNTAX-ERROR condition.

Package

json

Source

decoder.lisp (file)

Function: lisp-to-camel-case STRING

Take a string with Lisp-style hyphentation and convert it to camel case. This is an inverse of CAMEL-CASE-TO-LISP.

Package

json

Source

camel-case.lisp (file)

Function: safe-json-intern STRING

The default json-intern is not safe. Interns of many
unique symbols could potentially use a lot of memory.
An attack could exploit this by submitting something that is passed through cl-json that has many very large, unique symbols. This version is safe in that respect because it only allows symbols that already exists.

Package

json

Source

common.lisp (file)

Function: send-error ERRMSG CODE &optional CONDITION
Package

json-rpc

Source

json-rpc.lisp (file)

Function: send-error-object EXPLICIT-ERROBJECT &optional CONDITION
Package

json-rpc

Source

json-rpc.lisp (file)

Function: send-internal-error &optional CONDITION
Package

json-rpc

Source

json-rpc.lisp (file)

Function: send-nothing &optional CONDITION
Package

json-rpc

Source

json-rpc.lisp (file)

Function: set-decoder-simple-clos-semantics ()

Set the decoder semantics to the following:
* Strings and Numbers are decoded naturally, reals becoming floats. * The literal name true is decoded to T, false and null to NIL. * Arrays are decoded to sequences of the type *JSON-ARRAY-TYPE*. * Objects are decoded to CLOS objects. Object keys are converted by the function *JSON-IDENTIFIER-NAME-TO-LISP*. If a JSON Object has a field whose key matches *PROTOTYPE-NAME*, the class of the CLOS object and the package wherein to intern slot names are inferred from the corresponding value which must be a valid prototype. Otherwise, a FLUID-OBJECT is constructed whose slot names are interned in *JSON-SYMBOLS-PACKAGE*.

Package

json

Source

decoder.lisp (file)

Function: set-decoder-simple-list-semantics ()

Set the decoder semantics to the following:
* Strings and Numbers are decoded naturally, reals becoming floats. * The literal name true is decoded to T, false and null to NIL. * Arrays are decoded to sequences of the type *JSON-ARRAY-TYPE*. * Objects are decoded to alists. Object keys are converted by the function *JSON-IDENTIFIER-NAME-TO-LISP* and then interned in the package *JSON-SYMBOLS-PACKAGE*.

Package

json

Source

decoder.lisp (file)

Function: simplified-camel-case-to-lisp CAMEL-STRING

Insert - between lowercase and uppercase chars. Ignore _ + * and several consecutive uppercase.

Package

json

Source

camel-case.lisp (file)

Function: stream-array-member-encoder STREAM &optional ENCODER

Return a function which takes an argument and encodes it to STREAM as a Member of an Array. The encoding function is taken from the value of ENCODER (default is #’ENCODE-JSON).

Package

json

Source

encoder.lisp (file)

Function: stream-object-member-encoder STREAM &optional ENCODER

Return a function which takes two arguments and encodes them to STREAM as a Member of an Object (String : Value pair).

Package

json

Source

encoder.lisp (file)

Function: unencodable-value-error VALUE &optional CONTEXT

Signal an UNENCODABLE-VALUE-ERROR.

Package

json

Source

encoder.lisp (file)

Function: unknown-symbol-error STRING
Package

json

Source

common.lisp (file)

Function: use-explicit-encoder ()
Package

json

Source

encoder.lisp (file)

Function: use-guessing-encoder ()
Package

json

Source

encoder.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 Generic functions

Generic Function: encode-json OBJECT &optional STREAM

Write a JSON representation of OBJECT to STREAM and return NIL.

Package

json

Source

encoder.lisp (file)

Methods
Method: encode-json (O standard-object) &optional STREAM

Write the JSON representation (Object) of the CLOS object O to STREAM (or to *JSON-OUTPUT*).

Method: encode-json (H hash-table) &optional STREAM

Write the JSON representation (Object) of the hash table H to STREAM (or to *JSON-OUTPUT*).

Method: encode-json (S sequence) &optional STREAM

Write the JSON representation (Array) of the sequence S (not an alist) to STREAM (or to *JSON-OUTPUT*).

Method: encode-json (S list) &optional STREAM

Write the JSON representation of the list S to STREAM (or to *JSON-OUTPUT*), using one of the two rules specified by
first calling USE-GUESSING-ENCODER or USE-EXPLICIT-ENCODER. The guessing encoder: If S is a list encode S as a JSON Array, if S is a dotted list encode it as an Object (per ENCODE-JSON-ALIST). The explicit decoder: If S is a list, the first symbol defines the encoding:
If (car S) is ’TRUE return a JSON true value.
If (car S) is ’FALSE return a JSON false value.
If (car S) is ’NULL return a JSON null value.
If (car S) is ’JSON princ the strings in (cdr s) to stream
If (car S) is ’LIST or ’ARRAY encode (cdr S) as a a JSON Array. If (car S) is ’OBJECT encode (cdr S) as A JSON Object, interpreting (cdr S) either as an A-LIST or a P-LIST.

Method: encode-json (S symbol) &optional STREAM

Write the JSON representation of the symbol S to STREAM (or to *JSON-OUTPUT*). If S is boolean, a boolean literal is written. Otherwise, the name of S is passed to *LISP-IDENTIFIER-NAME-TO-JSON* and the result is written as String.

Method: encode-json (C character) &optional STREAM

JSON does not define a character type, we encode characters as Strings.

Method: encode-json (S string) &optional STREAM

Write the JSON representation of the string S to STREAM (or to *JSON-OUTPUT*).

Method: encode-json (NR number) &optional STREAM

Write the JSON representation of the number NR to STREAM (or to *JSON-OUTPUT*).

Method: encode-json ANYTHING &optional STREAM

If OBJECT is not handled by any specialized encoder signal an error which the user can correct by choosing to encode the string which is the printed representation of the OBJECT.

Generic Function: make-object BINDINGS CLASS &optional SUPERCLASSES

If CLASS is not NIL, create an instance of that
class. Otherwise, create a fluid object whose class has the given SUPERCLASSES (null list by default). In either case, populate the resulting object using BINDINGS (an alist of slot names and values).

Package

json

Source

objects.lisp (file)

Methods
Method: make-object BINDINGS (CLASS symbol) &optional SUPERCLASSES

If the CLASS is given as a symbol, find it and resort to the usual procedure.

Method: make-object BINDINGS (CLASS (eql #<structure-class common-lisp:hash-table>)) &optional SUPERCLASSES

If the CLASS is given as ’HASH-TABLE, return the BINDINGS as hash table.

Method: make-object BINDINGS (CLASS (eql #<built-in-class common-lisp:list>)) &optional SUPERCLASSES

If the CLASS is given as ’LIST, return the BINDINGS as plist.

Method: make-object BINDINGS (CLASS (eql #<built-in-class common-lisp:cons>)) &optional SUPERCLASSES

If the CLASS is given as ’CONS, return the BINDINGS as alist.

Method: make-object BINDINGS CLASS &optional SUPERCLASSES

If the CLASS is explicitly specified, just create and populate an instance, discarding any of the BINDINGS which do not correspond to the slots of that CLASS.

Method: make-object BINDINGS (CLASS (eql nil)) &optional SUPERCLASSES

Create a FLUID-OBJECT with the slots given by BINDINGS and whose class has all the given SUPERCLASSES. If the current *CLASS-REGISTRY* has a member with exactly the same direct superclasses, it is updated to include all the given slots. Otherwise, a new FLUID-CLASS is allocated and added to the *CLASS-REGISTRY*.

Generic Function: make-object-prototype OBJECT &optional SLOT-NAMES

Return a PROTOTYPE describing the OBJECT’s class or superclasses, and the package into which the names of the class / superclasses and of the OBJECT’s slots are to be interned.

Package

json

Source

objects.lisp (file)

Methods
Method: make-object-prototype (OBJECT prototype) &optional SLOT-NAMES

Prototypes are not to be given their own prototypes, otherwise we would proceed ad malinfinitum.

Method: make-object-prototype (CLASS-NAME symbol) &optional SLOT-NAMES

Return a PROTOTYPE of an object of the class named by CLASS-NAME.

Method: make-object-prototype OBJECT &optional SLOT-NAMES

Return a PROTOTYPE describing the OBJECT’s class or superclasses, and the package into which the names of the class / superclasses and of the OBJECT’s slots are to be interned.


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.6 Conditions

Condition: json-rpc-call-error ()
Package

json-rpc

Source

json-rpc.lisp (file)

Direct superclasses

error (condition)

Direct methods

encapsulated-error (method)

Direct slots
Slot: encapsulated-error
Initargs

:error

Readers

encapsulated-error (generic function)

Condition: json-syntax-error ()

Signalled when non-well-formed JSON data are encountered.

Package

json

Source

decoder.lisp (file)

Direct superclasses
  • stream-error (condition)
  • simple-error (condition)
Direct methods

stream-error-stream-file-position (method)

Direct slots
Slot: stream-file-position
Initargs

:stream-file-position

Readers

stream-error-stream-file-position (generic function)

Condition: no-char-for-code ()

Signalled when, in a JSON String, an escaped code point (uXXXX)
is encountered which is greater than the application’s CHAR-CODE-LIMIT or for which CODE-CHAR returns NIL.

Package

json

Source

decoder.lisp (file)

Direct superclasses

error (condition)

Direct methods

offending-code (method)

Direct slots
Slot: offending-code
Initargs

:code

Readers

offending-code (generic function)

Condition: unencodable-value-error ()

Signalled when a datum is passed to ENCODE-JSON (or another encoder function) which actually cannot be encoded.

Package

json

Source

encoder.lisp (file)

Direct superclasses

type-error (condition)

Direct methods
Direct slots
Slot: context
Initargs

:context

Readers

unencodable-value-error-context (generic function)

Writers

(setf unencodable-value-error-context) (generic function)

Direct Default Initargs
InitargValue
:expected-typet
Condition: unknown-symbol-error ()

Signalled by safe-json-intern when a symbol that is not already interned in *json-symbols-package* is found.

Package

json

Source

common.lisp (file)

Direct superclasses

parse-error (condition)

Direct methods
Direct slots
Slot: datum
Initargs

:datum

Readers

unknown-symbol-error-datum (generic function)

Writers

(setf unknown-symbol-error-datum) (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.7 Classes

Class: fluid-class ()

A class to whose instances arbitrary new slots may be added on the fly.

Package

json

Source

objects.lisp (file)

Direct superclasses

standard-class (class)

Direct methods
  • slot-missing (method)
  • slot-missing (method)
  • slot-missing (method)
  • slot-missing (method)
  • compute-class-precedence-list (method)
  • validate-superclass (method)
  • remove-direct-subclass (method)
  • add-direct-subclass (method)
Class: fluid-object ()

Any instance of a fluid class.

Package

json

Source

objects.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
  • slot-missing (method)
  • slot-missing (method)
  • slot-missing (method)
  • slot-missing (method)
Class: prototype ()

A PROTOTYPE contains metadata for an object’s class
in a format easily serializable to JSON: either the name of the class as a string or (if it is anonymous) the names of the superclasses as a list of strings; and the name of the Lisp package into which the names of the class’s slots and the name of the class / superclasses are to be interned.

Package

json

Source

objects.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: lisp-class
Initargs

:lisp-class

Readers

lisp-class (generic function)

Slot: lisp-superclasses
Initargs

:lisp-superclasses

Readers

lisp-superclasses (generic function)

Slot: lisp-package
Initargs

:lisp-package

Readers

lisp-package (generic function)

Direct Default Initargs
InitargValue
:lisp-classnil
:lisp-superclassesnil
:lisp-packagenil

Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Constants

Constant: +empty-array+
Package

json-rpc

Source

json-rpc.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Special variables

Special Variable: *accumulator*

List or vector where elements are stored.

Package

json

Source

decoder.lisp (file)

Special Variable: *accumulator-last*

If *ACCUMULATOR* is a list, this refers to its last cons.

Package

json

Source

decoder.lisp (file)

Special Variable: *cl-json-directory*
Package

json-system

Source

cl-json.asd

Special Variable: *class-registry*

A list of anonymous fluid classes, one member for every distinct combination of direct superclasses.

Package

json

Source

objects.lisp (file)

Special Variable: *custom-vars*
Package

json

Source

common.lisp (file)

Special Variable: *json-aggregate-context*

NIL outside of any aggregate environment, ’ARRAY or ’OBJECT within the respective environments.

Package

json

Source

encoder.lisp (file)

Special Variable: *json-aggregate-first*

T when the first member of a JSON Object or Array is encoded, afterwards NIL.

Package

json

Source

encoder.lisp (file)

Special Variable: *json-list-encoder-fn*
Package

json

Source

encoder.lisp (file)

Special Variable: *json-rpc-functions*
Package

json-rpc

Source

json-rpc.lisp (file)

Special Variable: *prototype*

When NIL, the Object being decoded does not (yet?) have a prototype. When T, the decoder should get ready to decode a prototype field. Otherwise, the value should be a prototype for the object being decoded.

Package

json

Source

decoder.lisp (file)

Special Variable: *prototype-prototype*

The prototype for a prototype object.

Package

json

Source

decoder.lisp (file)

Special Variable: +json-lisp-escaped-chars+

Mapping between JSON String escape sequences and Lisp chars.

Package

json

Source

common.lisp (file)

Special Variable: +json-lisp-symbol-tokens+

Mapping between JSON literal names and Lisp boolean values.

Package

json

Source

common.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Macros

Macro: aggregate-scope-progv VARIABLES &body BODY

Establish a dynamic environment where all VARIABLES are freshly bound (to their current values), and execute BODY in it, returning the result.

Package

json

Source

decoder.lisp (file)

Macro: def-restart RESTART-NAME &rest PARAMS
Package

json-rpc

Source

json-rpc.lisp (file)

Macro: defconstant NAME VALUE &optional DOC
Package

json-rpc

Source

json-rpc.lisp (file)

Macro: define-custom-var (KEY NAME) &rest OTHER-ARGS
Package

json

Source

common.lisp (file)

Macro: escaped-char-dispatch CHAR &key CODE-HANDLER DEFAULT-HANDLER

Compiles the escaped character alist to a (CASE ...) match expression.

Package

json

Source

decoder.lisp (file)

Macro: let-gensyms (&rest NAMES) &body BODY
Package

json

Source

common.lisp (file)

Macro: loop-on-custom (KEY VAR &optional VALUE) &rest CLAUSES
Package

json

Source

common.lisp (file)

Macro: with-aggregate (CONTEXT BEGIN-CHAR END-CHAR &optional STREAM) &body BODY

Run BODY to encode a JSON aggregate type, delimited by BEGIN-CHAR and END-CHAR.

Package

json

Source

encoder.lisp (file)

Macro: with-local-encoder &body BODY
Package

json

Source

encoder.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Functions

Function: accumulator-add ELEMENT

Add ELEMENT to the end of the list accumulator.

Package

json

Source

decoder.lisp (file)

Function: accumulator-add-key KEY

Add a cons whose CAR is KEY to the end of the list accumulator.

Package

json

Source

decoder.lisp (file)

Function: accumulator-add-key-or-set-prototype KEY

If KEY (in a JSON Object being decoded) matches *PROTOTYPE-NAME*, prepare to decode the corresponding Value as a PROTOTYPE object. Otherwise, do the same as ACCUMULATOR-ADD-KEY.

Package

json

Source

decoder.lisp (file)

Function: accumulator-add-value VALUE

Set the CDR of the most recently accumulated cons to VALUE.

Package

json

Source

decoder.lisp (file)

Function: accumulator-add-value-or-set-prototype VALUE

If VALUE (in a JSON Object being decoded) corresponds to a key which matches *PROTOTYPE-NAME*, set VALUE to be the prototype of the Object. Otherwise, do the same as ACCUMULATOR-ADD-VALUE.

Package

json

Source

decoder.lisp (file)

Function: accumulator-get ()

Return all values accumulated so far in the list accumulator as a list.

Package

json

Source

decoder.lisp (file)

Function: accumulator-get-object ()

Return a CLOS object, using keys and values accumulated so far in the list accumulator as slot names and values, respectively. If the JSON Object had a prototype field infer the class of the object and the package wherein to intern slot names from the prototype. Otherwise, create a FLUID-OBJECT with slots interned in *JSON-SYMBOLS-PACKAGE*.

Package

json

Source

decoder.lisp (file)

Function: accumulator-get-sequence ()

Return all values accumulated so far in the list accumulator as *JSON-ARRAY-TYPE*.

Package

json

Source

decoder.lisp (file)

Function: accumulator-get-string ()

Return all values accumulated so far in the list accumulator as *JSON-ARRAY-TYPE*.

Package

json

Source

decoder.lisp (file)

Function: camel-case-split STRING

Assume STRING is in camel case, and split it into largest possible “homogenous” parts. A homogenous part consists either a) of upper-case alphabetic chars; or b) of lower-case alphabetic chars with an optional initial upper-case; or c) of decimal digits; or d) of a single non-alphanumeric char. The return value is a list of
pairs (CATEGORY . PART) where CATEGORY is one of the keywords :UPPER, :UPPER-1, :LOWER, :NUMERIC, :MIXED, and PART is a substring of STRING.

Package

json

Source

camel-case.lisp (file)

Function: camel-case-transform PARTS &optional CAT-BEFORE

Take a list of PARTS (as returned by CAMEL-CASE-SPLIT) and transform it into a string with Lisp-style hyphenation, assuming that some initial portion of it does not contain :UPPER parts.

Package

json

Source

camel-case.lisp (file)

Function: camel-case-transform-all-caps PARTS &optional CAT-BEFORE FROM-NUMERIC

Take a list of PARTS (as returned by CAMEL-CASE-SPLIT) and transform it into a string with Lisp-style hyphenation, assuming that some initial portion of it does not contain :MIXED parts.

Package

json

Source

camel-case.lisp (file)

Function: custom-key-to-variable KEY
Package

json

Source

common.lisp (file)

Function: decode-json-array STREAM

Read comma-separated sequence of JSON Values until a closing bracket, calling array handlers as it goes.

Package

json

Source

decoder.lisp (file)

Function: decode-json-object STREAM

Read comma-separated sequence of JSON String:Value pairs until a closing brace, calling object handlers as it goes.

Package

json

Source

decoder.lisp (file)

Function: decode-json-string STREAM

Read JSON String characters / escape sequences until a closing double quote, calling string handlers as it goes.

Package

json

Source

decoder.lisp (file)

Function: encode-json-list-explicit-encoder S STREAM
Package

json

Source

encoder.lisp (file)

Function: encode-json-list-guessing-encoder S STREAM

Write the JSON representation of the list S to STREAM (or to *JSON-OUTPUT*). If S is not encodable as a JSON Array, try to encode it as an Object (per ENCODE-JSON-ALIST).

Package

json

Source

encoder.lisp (file)

Function: ensure-fluid-class-with-slots SLOTS SUPERCLASSES &optional EXTANT-CLASS

Create or update a fluid class, ensuring that it has (at least) all the given SLOTS and SUPERCLASSES.

Package

json

Source

objects.lisp (file)

Function: find-class* CLASS-DESIGNATOR

Like FIND-CLASS, but allow self-designating classes for the argument, and assert that the resulting class is a STANDARD-CLASS.

Package

json

Source

objects.lisp (file)

Function: init-accumulator ()

Initialize a list accumulator.

Package

json

Source

decoder.lisp (file)

Function: init-accumulator-and-prototype ()

Initialize a list accumulator and a prototype.

Package

json

Source

decoder.lisp (file)

Function: init-string-stream-accumulator ()

Initialize a string-stream accumulator.

Package

json

Source

decoder.lisp (file)

Function: json-bind-level-customizations LEVEL-KEYS VALUE-REQUIRED DECODER VALIDATOR KEY-HANDLER VALUE-HANDLER PASS
Package

json

Source

utils.lisp (file)

Function: json-boolean-to-lisp TOKEN

Take a literal name token and convert it to a boolean value.

Package

json

Source

decoder.lisp (file)

Function: make-and-populate-instance CLASS BINDINGS

Make an instance of the given CLASS, and set its slots to given values. BINDINGS must be a list of pairs whose CARs are slot names and CDRs are the respective values. If no slot of a given name is defined in the CLASS, the corresponding value is discarded.

Package

json

Source

objects.lisp (file)

Function: make-json-rpc-error-object-1.1 MESSAGE &key CODE ERROR-OBJECT

This code is based on the Working Draft 7 August 2006 of Json-rpc 1.1 specification. http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html

Package

json-rpc

Source

json-rpc.lisp (file)

Function: make-json-rpc-error-object-2.0 &key MESSAGE CODE DATA ERROR-OBJECT
Package

json-rpc

Source

json-rpc.lisp (file)

Function: make-rpc-response &key RESULT ERROR ID

When the method invocation completes, the service must reply with a response. The response is a single object serialized using JSON.

It has three properties:

* result - The Object that was returned by the invoked method. This must be null in case there was an error invoking the method. * error - An Error object(unspecified in json-rpc 1.0) if there was an error invoking the method. Null if there was no error. * id - This must be the same id as the request it is responding to.

Package

json-rpc

Source

json-rpc.lisp (file)

Function: map-slots FUNCTION OBJECT

Call FUNCTION on the name and value of every bound slot in OBJECT.

Package

json

Source

objects.lisp (file)

Function: max-package SYMBOLS &key (INITIAL-VALUE PACKAGE)

Try to find a package P such that the names of the given SYMBOLS, when interned in P, yield the same symbols. If no such package exists, return an unspecific value and issue a warning.

Package

json

Source

objects.lisp (file)

Function: maybe-add-prototype OBJECT PROTOTYPE

If the PROTOTYPE is not NIL, and the OBJECT has a slot to accept it, do set it. Return OBJECT.

Package

json

Source

objects.lisp (file)

Function: next-aggregate-member CONTEXT STREAM

Between two members of an Object or Array, print a comma separator.

Package

json

Source

encoder.lisp (file)

Function: package-name* PACKAGE

Same as PACKAGE-NAME, but ensure that the result is a symbol.

Package

json

Source

objects.lisp (file)

Function: parse-number TOKEN

Take a number token and convert it to a numeric value.

Package

json

Source

decoder.lisp (file)

Function: peek-json-token STREAM

Return 2 values: the category and the first character of the next token available in the given STREAM. Unlike READ-JSON-TOKEN, this function can not discriminate between integers and reals (hence, it returns a single :NUMBER category), and cannot check whether the next available symbol is a valid boolean or not (hence, the category for such tokens is :SYMBOL).

Package

json

Source

decoder.lisp (file)

Function: range-keys VAR-KEYS
Package

json

Source

utils.lisp (file)

Function: read-json-name-token STREAM

Read a JSON literal name token from the given STREAM, and return 2 values: the token category (:BOOLEAN) and the token itself, as a string.

Package

json

Source

decoder.lisp (file)

Function: read-json-number-token STREAM

Read a JSON number token from the given STREAM, and return 2 values: the token category (:INTEGER or :REAL) and the token itself, as a string.

Package

json

Source

decoder.lisp (file)

Function: read-json-string-char STREAM

Read a JSON String char (or escape sequence) from the STREAM and return it. If an end of string (unescaped quote) is encountered, return NIL.

Package

json

Source

decoder.lisp (file)

Function: read-json-token STREAM

Read a JSON token (literal name, number or punctuation char) from the given STREAM, and return 2 values: the token category (a symbol) and the token itself, as a string or character.

Package

json

Source

decoder.lisp (file)

Function: string-stream-accumulator-add CHAR

Add CHAR to the end of the string-stream accumulator.

Package

json

Source

decoder.lisp (file)

Function: string-stream-accumulator-get ()

Return all characters accumulated so far in a string-stream accumulator and close the stream.

Package

json

Source

decoder.lisp (file)

Function: write-json-chars S STREAM

Write JSON representations (chars or escape sequences) of characters in string S to STREAM.

Package

json

Source

encoder.lisp (file)

Function: write-json-number NR STREAM

Write the JSON representation of the number NR to STREAM.

Package

json

Source

encoder.lisp (file)

Function: write-json-string S STREAM

Write a JSON representation (String) of S to STREAM.

Package

json

Source

encoder.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Generic functions

Generic Function: encapsulated-error CONDITION
Package

json-rpc

Methods
Method: encapsulated-error (CONDITION json-rpc-call-error)
Source

json-rpc.lisp (file)

Generic Function: encode-json-rpc-value RAW-VALUE ENCODING

Translate RAW-VALUE according to JSON-RPC value encoding ENCODING

Package

json-rpc

Source

json-rpc.lisp (file)

Methods
Method: encode-json-rpc-value RAW-VAL (KEYWORD (eql array))
Method: encode-json-rpc-value RAW-VAL (KEYWORD (eql boolean))
Method: encode-json-rpc-value RAW-VALUE ENCODING before
Method: encode-json-rpc-value RAW-VALUE (ENCODING (eql guessing))
Method: encode-json-rpc-value RAW-VALUE (ENCODING (eql streaming))
Method: encode-json-rpc-value RAW-VALUE (ENCODING (eql explicit))
Generic Function: json-rpc-encoding-p KEYWORD

Is KEYWORD a valid JSON-RPC value encoding?

Package

json-rpc

Source

json-rpc.lisp (file)

Methods
Method: json-rpc-encoding-p (KEYWORD (eql array))
Method: json-rpc-encoding-p (KEYWORD (eql boolean))
Method: json-rpc-encoding-p KEYWORD

Default is no.

Method: json-rpc-encoding-p (KEYWORD (eql guessing))
Method: json-rpc-encoding-p (KEYWORD (eql streaming))
Method: json-rpc-encoding-p (KEYWORD (eql explicit))
Generic Function: lisp-class OBJECT
Package

json

Methods
Method: lisp-class (PROTOTYPE prototype)

automatically generated reader method

Source

objects.lisp (file)

Generic Function: lisp-package OBJECT
Package

json

Methods
Method: lisp-package (PROTOTYPE prototype)

automatically generated reader method

Source

objects.lisp (file)

Generic Function: lisp-superclasses OBJECT
Package

json

Methods
Method: lisp-superclasses (PROTOTYPE prototype)

automatically generated reader method

Source

objects.lisp (file)

Generic Function: offending-code CONDITION
Package

json

Methods
Method: offending-code (CONDITION no-char-for-code)
Source

decoder.lisp (file)

Generic Function: stream-error-stream-file-position CONDITION
Package

json

Methods
Method: stream-error-stream-file-position (CONDITION json-syntax-error)
Source

decoder.lisp (file)

Generic Function: unencodable-value-error-context CONDITION
Generic Function: (setf unencodable-value-error-context) NEW-VALUE CONDITION
Package

json

Methods
Method: unencodable-value-error-context (CONDITION unencodable-value-error)
Method: (setf unencodable-value-error-context) NEW-VALUE (CONDITION unencodable-value-error)
Source

encoder.lisp (file)

Generic Function: unknown-symbol-error-datum CONDITION
Generic Function: (setf unknown-symbol-error-datum) NEW-VALUE CONDITION
Package

json

Methods
Method: unknown-symbol-error-datum (CONDITION unknown-symbol-error)
Method: (setf unknown-symbol-error-datum) NEW-VALUE (CONDITION unknown-symbol-error)
Source

common.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L   M   O  
Index Entry  Section

C
cl-json.asd: The cl-json<dot>asd file
cl-json/cl-json.asd: The cl-json/cl-json<dot>asd file
cl-json/src: The cl-json/src module
cl-json/src/camel-case.lisp: The cl-json/src/camel-case<dot>lisp file
cl-json/src/common.lisp: The cl-json/src/common<dot>lisp file
cl-json/src/decoder.lisp: The cl-json/src/decoder<dot>lisp file
cl-json/src/encoder.lisp: The cl-json/src/encoder<dot>lisp file
cl-json/src/json-rpc.lisp: The cl-json/src/json-rpc<dot>lisp file
cl-json/src/objects.lisp: The cl-json/src/objects<dot>lisp file
cl-json/src/package.lisp: The cl-json/src/package<dot>lisp file
cl-json/src/utils.lisp: The cl-json/src/utils<dot>lisp file

F
File, Lisp, cl-json.asd: The cl-json<dot>asd file
File, Lisp, cl-json/src/camel-case.lisp: The cl-json/src/camel-case<dot>lisp file
File, Lisp, cl-json/src/common.lisp: The cl-json/src/common<dot>lisp file
File, Lisp, cl-json/src/decoder.lisp: The cl-json/src/decoder<dot>lisp file
File, Lisp, cl-json/src/encoder.lisp: The cl-json/src/encoder<dot>lisp file
File, Lisp, cl-json/src/json-rpc.lisp: The cl-json/src/json-rpc<dot>lisp file
File, Lisp, cl-json/src/objects.lisp: The cl-json/src/objects<dot>lisp file
File, Lisp, cl-json/src/package.lisp: The cl-json/src/package<dot>lisp file
File, Lisp, cl-json/src/utils.lisp: The cl-json/src/utils<dot>lisp file
File, other, cl-json/cl-json.asd: The cl-json/cl-json<dot>asd file

L
Lisp File, cl-json.asd: The cl-json<dot>asd file
Lisp File, cl-json/src/camel-case.lisp: The cl-json/src/camel-case<dot>lisp file
Lisp File, cl-json/src/common.lisp: The cl-json/src/common<dot>lisp file
Lisp File, cl-json/src/decoder.lisp: The cl-json/src/decoder<dot>lisp file
Lisp File, cl-json/src/encoder.lisp: The cl-json/src/encoder<dot>lisp file
Lisp File, cl-json/src/json-rpc.lisp: The cl-json/src/json-rpc<dot>lisp file
Lisp File, cl-json/src/objects.lisp: The cl-json/src/objects<dot>lisp file
Lisp File, cl-json/src/package.lisp: The cl-json/src/package<dot>lisp file
Lisp File, cl-json/src/utils.lisp: The cl-json/src/utils<dot>lisp file

M
Module, cl-json/src: The cl-json/src module

O
Other File, cl-json/cl-json.asd: The cl-json/cl-json<dot>asd file

Jump to:   C   F   L   M   O  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S   U   W  
Index Entry  Section

(
(setf unencodable-value-error-context): Internal generic functions
(setf unencodable-value-error-context): Internal generic functions
(setf unknown-symbol-error-datum): Internal generic functions
(setf unknown-symbol-error-datum): Internal generic functions

A
accumulator-add: Internal functions
accumulator-add-key: Internal functions
accumulator-add-key-or-set-prototype: Internal functions
accumulator-add-value: Internal functions
accumulator-add-value-or-set-prototype: Internal functions
accumulator-get: Internal functions
accumulator-get-object: Internal functions
accumulator-get-sequence: Internal functions
accumulator-get-string: Internal functions
aggregate-scope-progv: Internal macros
as-array-member: Exported macros
as-object-member: Exported macros

B
bind-custom-vars: Exported macros

C
camel-case-split: Internal functions
camel-case-to-lisp: Exported functions
camel-case-transform: Internal functions
camel-case-transform-all-caps: Internal functions
clear-class-registry: Exported functions
clear-exported: Exported functions
current-decoder: Exported macros
custom-decoder: Exported macros
custom-key-to-variable: Internal functions

D
decode-json: Exported functions
decode-json-array: Internal functions
decode-json-from-source: Exported functions
decode-json-from-string: Exported functions
decode-json-object: Internal functions
decode-json-strict: Exported functions
decode-json-string: Internal functions
def-json-rpc-encoding: Exported macros
def-restart: Internal macros
defconstant: Internal macros
define-custom-var: Internal macros
defun-json-rpc: Exported macros

E
encapsulated-error: Internal generic functions
encapsulated-error: Internal generic functions
encode-array-member: Exported functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json: Exported generic functions
encode-json-alist: Exported functions
encode-json-alist-to-string: Exported functions
encode-json-list-explicit-encoder: Internal functions
encode-json-list-guessing-encoder: Internal functions
encode-json-plist: Exported functions
encode-json-plist-to-string: Exported functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-rpc-value: Internal generic functions
encode-json-to-string: Exported functions
encode-object-member: Exported functions
ensure-fluid-class-with-slots: Internal functions
escaped-char-dispatch: Internal macros
export-as-json-rpc: Exported functions

F
find-class*: Internal functions
Function, accumulator-add: Internal functions
Function, accumulator-add-key: Internal functions
Function, accumulator-add-key-or-set-prototype: Internal functions
Function, accumulator-add-value: Internal functions
Function, accumulator-add-value-or-set-prototype: Internal functions
Function, accumulator-get: Internal functions
Function, accumulator-get-object: Internal functions
Function, accumulator-get-sequence: Internal functions
Function, accumulator-get-string: Internal functions
Function, camel-case-split: Internal functions
Function, camel-case-to-lisp: Exported functions
Function, camel-case-transform: Internal functions
Function, camel-case-transform-all-caps: Internal functions
Function, clear-class-registry: Exported functions
Function, clear-exported: Exported functions
Function, custom-key-to-variable: Internal functions
Function, decode-json: Exported functions
Function, decode-json-array: Internal functions
Function, decode-json-from-source: Exported functions
Function, decode-json-from-string: Exported functions
Function, decode-json-object: Internal functions
Function, decode-json-strict: Exported functions
Function, decode-json-string: Internal functions
Function, encode-array-member: Exported functions
Function, encode-json-alist: Exported functions
Function, encode-json-alist-to-string: Exported functions
Function, encode-json-list-explicit-encoder: Internal functions
Function, encode-json-list-guessing-encoder: Internal functions
Function, encode-json-plist: Exported functions
Function, encode-json-plist-to-string: Exported functions
Function, encode-json-to-string: Exported functions
Function, encode-object-member: Exported functions
Function, ensure-fluid-class-with-slots: Internal functions
Function, export-as-json-rpc: Exported functions
Function, find-class*: Internal functions
Function, init-accumulator: Internal functions
Function, init-accumulator-and-prototype: Internal functions
Function, init-string-stream-accumulator: Internal functions
Function, invoke-rpc: Exported functions
Function, invoke-rpc-parsed: Exported functions
Function, json-bind-level-customizations: Internal functions
Function, json-bool: Exported functions
Function, json-boolean-to-lisp: Internal functions
Function, json-intern: Exported functions
Function, json-or-null: Exported functions
Function, json-syntax-error: Exported functions
Function, lisp-to-camel-case: Exported functions
Function, make-and-populate-instance: Internal functions
Function, make-json-rpc-error-object-1.1: Internal functions
Function, make-json-rpc-error-object-2.0: Internal functions
Function, make-rpc-response: Internal functions
Function, map-slots: Internal functions
Function, max-package: Internal functions
Function, maybe-add-prototype: Internal functions
Function, next-aggregate-member: Internal functions
Function, package-name*: Internal functions
Function, parse-number: Internal functions
Function, peek-json-token: Internal functions
Function, range-keys: Internal functions
Function, read-json-name-token: Internal functions
Function, read-json-number-token: Internal functions
Function, read-json-string-char: Internal functions
Function, read-json-token: Internal functions
Function, safe-json-intern: Exported functions
Function, send-error: Exported functions
Function, send-error-object: Exported functions
Function, send-internal-error: Exported functions
Function, send-nothing: Exported functions
Function, set-decoder-simple-clos-semantics: Exported functions
Function, set-decoder-simple-list-semantics: Exported functions
Function, simplified-camel-case-to-lisp: Exported functions
Function, stream-array-member-encoder: Exported functions
Function, stream-object-member-encoder: Exported functions
Function, string-stream-accumulator-add: Internal functions
Function, string-stream-accumulator-get: Internal functions
Function, unencodable-value-error: Exported functions
Function, unknown-symbol-error: Exported functions
Function, use-explicit-encoder: Exported functions
Function, use-guessing-encoder: Exported functions
Function, write-json-chars: Internal functions
Function, write-json-number: Internal functions
Function, write-json-string: Internal functions

G
Generic Function, (setf unencodable-value-error-context): Internal generic functions
Generic Function, (setf unknown-symbol-error-datum): Internal generic functions
Generic Function, encapsulated-error: Internal generic functions
Generic Function, encode-json: Exported generic functions
Generic Function, encode-json-rpc-value: Internal generic functions
Generic Function, json-rpc-encoding-p: Internal generic functions
Generic Function, lisp-class: Internal generic functions
Generic Function, lisp-package: Internal generic functions
Generic Function, lisp-superclasses: Internal generic functions
Generic Function, make-object: Exported generic functions
Generic Function, make-object-prototype: Exported generic functions
Generic Function, offending-code: Internal generic functions
Generic Function, stream-error-stream-file-position: Internal generic functions
Generic Function, unencodable-value-error-context: Internal generic functions
Generic Function, unknown-symbol-error-datum: Internal generic functions

I
init-accumulator: Internal functions
init-accumulator-and-prototype: Internal functions
init-string-stream-accumulator: Internal functions
invoke-rpc: Exported functions
invoke-rpc-parsed: Exported functions

J
json-bind: Exported macros
json-bind-level-customizations: Internal functions
json-bool: Exported functions
json-boolean-to-lisp: Internal functions
json-intern: Exported functions
json-or-null: Exported functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-rpc-encoding-p: Internal generic functions
json-syntax-error: Exported functions

L
let-gensyms: Internal macros
lisp-class: Internal generic functions
lisp-class: Internal generic functions
lisp-package: Internal generic functions
lisp-package: Internal generic functions
lisp-superclasses: Internal generic functions
lisp-superclasses: Internal generic functions
lisp-to-camel-case: Exported functions
loop-on-custom: Internal macros

M
Macro, aggregate-scope-progv: Internal macros
Macro, as-array-member: Exported macros
Macro, as-object-member: Exported macros
Macro, bind-custom-vars: Exported macros
Macro, current-decoder: Exported macros
Macro, custom-decoder: Exported macros
Macro, def-json-rpc-encoding: Exported macros
Macro, def-restart: Internal macros
Macro, defconstant: Internal macros
Macro, define-custom-var: Internal macros
Macro, defun-json-rpc: Exported macros
Macro, escaped-char-dispatch: Internal macros
Macro, json-bind: Exported macros
Macro, let-gensyms: Internal macros
Macro, loop-on-custom: Internal macros
Macro, set-custom-vars: Exported macros
Macro, with-aggregate: Internal macros
Macro, with-array: Exported macros
Macro, with-custom-decoder-level: Exported macros
Macro, with-decoder-simple-clos-semantics: Exported macros
Macro, with-decoder-simple-list-semantics: Exported macros
Macro, with-explicit-encoder: Exported macros
Macro, with-guessing-encoder: Exported macros
Macro, with-local-class-registry: Exported macros
Macro, with-local-encoder: Internal macros
Macro, with-object: Exported macros
Macro, with-shadowed-custom-vars: Exported macros
Macro, with-substitute-printed-representation-restart: Exported macros
make-and-populate-instance: Internal functions
make-json-rpc-error-object-1.1: Internal functions
make-json-rpc-error-object-2.0: Internal functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object: Exported generic functions
make-object-prototype: Exported generic functions
make-object-prototype: Exported generic functions
make-object-prototype: Exported generic functions
make-object-prototype: Exported generic functions
make-rpc-response: Internal functions
map-slots: Internal functions
max-package: Internal functions
maybe-add-prototype: Internal functions
Method, (setf unencodable-value-error-context): Internal generic functions
Method, (setf unknown-symbol-error-datum): Internal generic functions
Method, encapsulated-error: Internal generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json: Exported generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, encode-json-rpc-value: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, json-rpc-encoding-p: Internal generic functions
Method, lisp-class: Internal generic functions
Method, lisp-package: Internal generic functions
Method, lisp-superclasses: Internal generic functions
Method, make-object: Exported generic functions
Method, make-object: Exported generic functions
Method, make-object: Exported generic functions
Method, make-object: Exported generic functions
Method, make-object: Exported generic functions
Method, make-object: Exported generic functions
Method, make-object-prototype: Exported generic functions
Method, make-object-prototype: Exported generic functions
Method, make-object-prototype: Exported generic functions
Method, offending-code: Internal generic functions
Method, stream-error-stream-file-position: Internal generic functions
Method, unencodable-value-error-context: Internal generic functions
Method, unknown-symbol-error-datum: Internal generic functions

N
next-aggregate-member: Internal functions

O
offending-code: Internal generic functions
offending-code: Internal generic functions

P
package-name*: Internal functions
parse-number: Internal functions
peek-json-token: Internal functions

R
range-keys: Internal functions
read-json-name-token: Internal functions
read-json-number-token: Internal functions
read-json-string-char: Internal functions
read-json-token: Internal functions

S
safe-json-intern: Exported functions
send-error: Exported functions
send-error-object: Exported functions
send-internal-error: Exported functions
send-nothing: Exported functions
set-custom-vars: Exported macros
set-decoder-simple-clos-semantics: Exported functions
set-decoder-simple-list-semantics: Exported functions
simplified-camel-case-to-lisp: Exported functions
stream-array-member-encoder: Exported functions
stream-error-stream-file-position: Internal generic functions
stream-error-stream-file-position: Internal generic functions
stream-object-member-encoder: Exported functions
string-stream-accumulator-add: Internal functions
string-stream-accumulator-get: Internal functions

U
unencodable-value-error: Exported functions
unencodable-value-error-context: Internal generic functions
unencodable-value-error-context: Internal generic functions
unknown-symbol-error: Exported functions
unknown-symbol-error-datum: Internal generic functions
unknown-symbol-error-datum: Internal generic functions
use-explicit-encoder: Exported functions
use-guessing-encoder: Exported functions

W
with-aggregate: Internal macros
with-array: Exported macros
with-custom-decoder-level: Exported macros
with-decoder-simple-clos-semantics: Exported macros
with-decoder-simple-list-semantics: Exported macros
with-explicit-encoder: Exported macros
with-guessing-encoder: Exported macros
with-local-class-registry: Exported macros
with-local-encoder: Internal macros
with-object: Exported macros
with-shadowed-custom-vars: Exported macros
with-substitute-printed-representation-restart: Exported macros
write-json-chars: Internal functions
write-json-number: Internal functions
write-json-string: Internal functions

Jump to:   (  
A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S   U   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
C   D   E   L   O   S  
Index Entry  Section

*
*accumulator*: Internal special variables
*accumulator-last*: Internal special variables
*aggregate-scope-variables*: Exported special variables
*array-member-handler*: Exported special variables
*array-scope-variables*: Exported special variables
*beginning-of-array-handler*: Exported special variables
*beginning-of-object-handler*: Exported special variables
*beginning-of-string-handler*: Exported special variables
*boolean-handler*: Exported special variables
*cl-json-directory*: Internal special variables
*class-registry*: Internal special variables
*custom-vars*: Internal special variables
*end-of-array-handler*: Exported special variables
*end-of-object-handler*: Exported special variables
*end-of-string-handler*: Exported special variables
*identifier-name-to-key*: Exported special variables
*integer-handler*: Exported special variables
*internal-decoder*: Exported special variables
*json-aggregate-context*: Internal special variables
*json-aggregate-first*: Internal special variables
*json-array-type*: Exported special variables
*json-identifier-name-to-lisp*: Exported special variables
*json-input*: Exported special variables
*json-list-encoder-fn*: Internal special variables
*json-output*: Exported special variables
*json-rpc-functions*: Internal special variables
*json-rpc-version*: Exported special variables
*json-symbols-package*: Exported special variables
*lisp-identifier-name-to-json*: Exported special variables
*object-key-handler*: Exported special variables
*object-scope-variables*: Exported special variables
*object-value-handler*: Exported special variables
*prototype*: Internal special variables
*prototype-name*: Exported special variables
*prototype-prototype*: Internal special variables
*real-handler*: Exported special variables
*string-char-handler*: Exported special variables
*string-scope-variables*: Exported special variables
*use-strict-json-rules*: Exported special variables

+
+empty-array+: Internal constants
+json-lisp-escaped-chars+: Internal special variables
+json-lisp-symbol-tokens+: Internal special variables
+json-rpc-1.1+: Exported constants
+json-rpc-2.0+: Exported constants

C
Constant, +empty-array+: Internal constants
Constant, +json-rpc-1.1+: Exported constants
Constant, +json-rpc-2.0+: Exported constants
context: Exported conditions

D
datum: Exported conditions

E
encapsulated-error: Exported conditions

L
lisp-class: Exported classes
lisp-package: Exported classes
lisp-superclasses: Exported classes

O
offending-code: Exported conditions

S
Slot, context: Exported conditions
Slot, datum: Exported conditions
Slot, encapsulated-error: Exported conditions
Slot, lisp-class: Exported classes
Slot, lisp-package: Exported classes
Slot, lisp-superclasses: Exported classes
Slot, offending-code: Exported conditions
Slot, stream-file-position: Exported conditions
Special Variable, *accumulator*: Internal special variables
Special Variable, *accumulator-last*: Internal special variables
Special Variable, *aggregate-scope-variables*: Exported special variables
Special Variable, *array-member-handler*: Exported special variables
Special Variable, *array-scope-variables*: Exported special variables
Special Variable, *beginning-of-array-handler*: Exported special variables
Special Variable, *beginning-of-object-handler*: Exported special variables
Special Variable, *beginning-of-string-handler*: Exported special variables
Special Variable, *boolean-handler*: Exported special variables
Special Variable, *cl-json-directory*: Internal special variables
Special Variable, *class-registry*: Internal special variables
Special Variable, *custom-vars*: Internal special variables
Special Variable, *end-of-array-handler*: Exported special variables
Special Variable, *end-of-object-handler*: Exported special variables
Special Variable, *end-of-string-handler*: Exported special variables
Special Variable, *identifier-name-to-key*: Exported special variables
Special Variable, *integer-handler*: Exported special variables
Special Variable, *internal-decoder*: Exported special variables
Special Variable, *json-aggregate-context*: Internal special variables
Special Variable, *json-aggregate-first*: Internal special variables
Special Variable, *json-array-type*: Exported special variables
Special Variable, *json-identifier-name-to-lisp*: Exported special variables
Special Variable, *json-input*: Exported special variables
Special Variable, *json-list-encoder-fn*: Internal special variables
Special Variable, *json-output*: Exported special variables
Special Variable, *json-rpc-functions*: Internal special variables
Special Variable, *json-rpc-version*: Exported special variables
Special Variable, *json-symbols-package*: Exported special variables
Special Variable, *lisp-identifier-name-to-json*: Exported special variables
Special Variable, *object-key-handler*: Exported special variables
Special Variable, *object-scope-variables*: Exported special variables
Special Variable, *object-value-handler*: Exported special variables
Special Variable, *prototype*: Internal special variables
Special Variable, *prototype-name*: Exported special variables
Special Variable, *prototype-prototype*: Internal special variables
Special Variable, *real-handler*: Exported special variables
Special Variable, *string-char-handler*: Exported special variables
Special Variable, *string-scope-variables*: Exported special variables
Special Variable, *use-strict-json-rules*: Exported special variables
Special Variable, +json-lisp-escaped-chars+: Internal special variables
Special Variable, +json-lisp-symbol-tokens+: Internal special variables
stream-file-position: Exported conditions

Jump to:   *   +  
C   D   E   L   O   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   F   J   N   P   S   U  
Index Entry  Section

C
cl-json: The cl-json system
Class, fluid-class: Exported classes
Class, fluid-object: Exported classes
Class, prototype: Exported classes
Condition, json-rpc-call-error: Exported conditions
Condition, json-syntax-error: Exported conditions
Condition, no-char-for-code: Exported conditions
Condition, unencodable-value-error: Exported conditions
Condition, unknown-symbol-error: Exported conditions

F
fluid-class: Exported classes
fluid-object: Exported classes

J
json: The json package
json-rpc: The json-rpc package
json-rpc-call-error: Exported conditions
json-syntax-error: Exported conditions
json-system: The json-system package

N
no-char-for-code: Exported conditions

P
Package, json: The json package
Package, json-rpc: The json-rpc package
Package, json-system: The json-system package
prototype: Exported classes

S
System, cl-json: The cl-json system

U
unencodable-value-error: Exported conditions
unknown-symbol-error: Exported conditions

Jump to:   C   F   J   N   P   S   U