JSONとJSON-RPCとは?データの書き方と、機能を呼び出す決まり

JSONとJSON-RPC、データの書き方と、呼び出しの決まり。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年10月6日
仕様の版:RFC 8259(2017年12月)、JSON-RPC 2.0(2013年1月更新)

別のサービスへ「このデータを取得して」と頼むとき、ソフトウェアどうしはどうやって内容を伝えるのでしょうか。データの書き方であるJSONと、相手の機能を呼び出す決まりであるJSON-RPCを、仕様をもとに説明します。

JSONとは

JSON(JavaScript Object Notation)は、データを文字で書き表すための形式です。

名前、年齢、会員かどうか、好きな色の一覧を、波かっこと角かっこを使って書いたJSONの例と、それぞれの部分の名前を示す図

仕様(RFC 8259)はJSONを、軽量で文字で書かれ、プログラミング言語に依存しないデータ交換の形式と定めました。名前のとおりJavaScriptの書き方から生まれましたが、今ではほとんどの言語で読み書きできます。

JSONで表せるのは、文字列、数値、真偽値(true・false)、null(値がない)の4種類と、それらをまとめる2つの形です。

  • オブジェクト:{ } の中に「名前: 値」を並べたもの
  • 配列:[ ] の中に値を順番に並べたもの

人が読んでも意味が分かり、機械も扱いやすいため、Web APIの返事や設定ファイルに広く使われる形式です。決まった仲間うち以外とやりとりするときの文字コードは、UTF-8にするよう仕様で求められています。

JSON-RPCとは

JSON-RPCは、JSONを使って、相手のプログラムの機能(メソッド)を呼び出すための決まりです。RPCは、Remote Procedure Call(遠隔手続き呼び出し)を略した言葉になります。

依頼側が、呼び出す機能の名前と値と番号をJSONで送り、相手側が同じ番号を付けて結果をJSONで返す流れの図

仕様によると、JSON-RPCは状態を持たない軽量な遠隔手続き呼び出しの取り決めで、同じプログラムの中でもネットワーク越しでも使えます。

依頼(リクエスト)に書くのは、次の4つです。

項目 意味
jsonrpc 仕様の版。必ず "2.0"
method 呼び出す機能の名前
params 機能に渡す値(なくてもよい)
id 依頼を見分ける番号

返事(レスポンス)には、成功なら result、失敗なら error のどちらか一方と、依頼と同じ id が入ります。同じ id が付いているので、依頼をいくつも送っても、どの返事がどの依頼のものか分かる仕組みです。

通知とエラー

id を付けない依頼は通知(Notification)と呼ばれ、相手は返事をしません。「一覧が変わりました」のように、知らせるだけでよい場合に使われます。

失敗したときの error に入るのは、決まった番号です。

エラーの番号と意味の一覧。-32700はJSONとして読めない。-32600は依頼の形が正しくない。-32601は機能が見つからない。-32602は値が正しくない。-32603は内部のエラー

製品での使われ方

AIのアプリとツールのあいだのやりとりに、MCPはJSON-RPC 2.0を使っています。MCPの記事で紹介した tools/list(ツールの一覧を求める)と tools/call(ツールを呼び出す)は、JSON-RPCの method に入る名前です。

開発ツールと言語の支援機能をつなぐLanguage Server Protocol(LSP)も、JSON-RPCを使っています。

参考にした一次情報

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。Webのしくみの記事の一覧へもどる