JSONRPCのJSONとLispのplist(プロパティリストを参照)は交換することができます。JSON互換のplistをディスパッチャ関数に渡したり、同様にJSON互換のplistをjsonrpc-notify、jsonrpc-request、jsonrpc-async-requestに渡すことができます。
plist処理を容易にするために、このライブラリーはcl-libライブラリー(cl-lib in Common
Lisp Extensions for GNU Emacs
Lispを参照)の積極的に使用しており、そのクライアントにたいしてもこれを同じように提案します(強制ではない)。以下の例のようにJSONオブジェクトの非構造化用lambdaの作成にはマクロjsonrpc-lambdaを使用できます:
(jsonrpc-async-request
myproc :frobnicate `(:foo "trix")
:success-fn (jsonrpc-lambda (&key bar baz &allow-other-keys)
(message "Server replied back with %s and %s!"
bar baz))
:error-fn (jsonrpc-lambda (&key code message _data)
(message "Sadly, server reports %s: %s"
code message)))