JSONRPC JSON 对象以 Lisp 属性列表(plist)的形式进行交换(see 属性列表):
与 JSON 兼容的属性列表会被传递给分发函数;同样地,也应当向
jsonrpc-notify、jsonrpc-request 以及
jsonrpc-async-request 传入与 JSON 兼容的属性列表。
为方便处理属性列表,本库大量使用了 cl-lib 库(see cl-lib in Common Lisp Extensions for GNU Emacs Lisp),
并建议(但不强制)其使用者也这样做。可以使用宏 jsonrpc-lambda 创建用于解构 JSON 对象的匿名函数,示例如下:
(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)))