GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/JSONRPC-JSON-object-format.html ・ emacs-doc.conao3.com

33.32.3 JSONRPC JSONオブジェクト形式

JSONRPC JSONオブジェクトは、Lispのプリスト(プロパティリストを参照)としてやり取りされます。JSON互換のプリストはディスパッチャ関数に渡され、同様に、JSON互換のプリストはjsonrpc-notify、jsonrpc-request、およびjsonrpc-async-requestにも渡される必要があります。

plistの扱いを容易にするため、本ライブラリではcl-libライブラリ(Common Lisp Extensions for GNU Emacs Lispのcl-libを参照)を多用しており、クライアントに対しても同様の手法を推奨(ただし強制はしません)しています。マクロ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)))