JSON-RPC
JSON-RPCはこのプロトコルを実装するサーバに送信されることで用いられる。クライアントは一般的にはリモートシステムのメソッドを呼び出すことを意図したソフトウェアとなる。複数の入力パラメータを配列やオブジェクトとしてリモートメソッドに送信することが出来るが、またリモートメソッドも複数の出力データを返すことができる(この動作はバージョンにより異なる)。
全ての転送データはシリアライズされたJSONオブジェクトとしてあらわされる。リクエストはリモートシステムが提供する特定のメソッドを呼び出す。リクエストには以下の3つの重要なプロパティを含む必要がある。
method - 実行するメソッド名の文字列。
params - メソッドに渡されるパラメータのオブジェクトまたは配列。
id - リクエストに対応するレスポンスを識別するための文字列または数値。
リクエストを受け取った側は、受け取った全てのリクエストに対して正しいレスポンスを返さなければならない。レスポンスは正常/エラーに応じて以下のプロパティを含む必要がある。
result - 正常に実行された場合、メソッドを実行した結果。
error - エラーが発生した場合、その内容を示すオブジェクト。
id - リクエストで渡されたid。
この他に、レスポンスを必要としない通知のための仕組みが導入されている。レスポンスを返さない場合idは必要ないため、通知のリクエストはidを取り除いたリクエストの形式になっている。通知の場合 id を送らない(バージョン2.0)または null にする(バージョン1.0)べきである。