JSONツール

JSON Pointerひとつのアドレスで、値を正確に指定

値の取得、パスの分解、トークンからの生成を、明確なエンコード規則で実行します。

JSON Pointer

JSON文書

Pointerテキスト

結果プレビュー

コピーとダウンロードには、取得したJSON値、トークン配列、生成したPointer、または変換したトークンの全体が含まれます。下の参考情報は含まれません。

入力はブラウザのメモリ内に保持され、送信・保存されません。

通常形式では空の入力がルート、/が空のキーを指します。フラグメントは#を含め、UTF-8のパーセントエンコードを使います。空白や改行は意味を持ち、自動では削除されません。

再実行して結果を更新してください。古い結果のコピーとダウンロードは無効です。

JSON Pointerで、API応答やスキーマエラーに示された位置を確認できます。文法が正しいパスでも、対象のフィールドが存在するとは限りません。このツールではアドレスの解析と文書からの値の取得を分け、どちらの段階で失敗したかを確認できます。

JSONポインタは、文書全体と空のキー、配列添字を区別します。JSON Pointerのパス確認はAPIマッピングにも役立ち、配列項目の参照では現在のコンテナが添字の意味を決めます。生成は文字列トークンの配列から行い、単一トークンのエスケープとは別の操作として扱います。

JSON Pointerで位置を確認する理由

似ているアドレスを区別する

JSON Pointerでは空文字列が文書全体、/が空の名前を持つプロパティを指します。0というトークンも、現在の値が配列のときだけ添字になります。オブジェクトでは通常のキーとして扱われるため、文字だけで判断できません。

三色のポインターが文書の外枠、空の円形キーマーカーに対応する値、配列の最初の項目を指している。

エンコードの段階を見分ける

JSON Pointerは各トークンをエスケープし、区切りのスラッシュで連結します。URIフラグメントでは、その後にUTF-8のパーセントエンコードが加わります。デコードしたトークンを見れば、キーの一部であるスラッシュと階層の区切りを区別できます。

幾何学的なトークンが盾による保護の段階を通り、URIエンコードを表す小さなバイトのブロックへ進む。

操作に必要な入力だけを指定

01

アドレスを解析するか、値を取得する

解析にはPointerと表現形式だけが必要です。値の取得には厳密なJSON文書も必要です。通常形式かURIフラグメントを明示的に選びます。#からの自動判定は行いません。実行ボタンかCtrl/Cmd+Enterで処理します。

02

トークンから生成する

生成には文字列のJSON配列を使います。[]はルート、[""]は空のキーを表し、数値を含む[0]は拒否されます。エスケープとアンエスケープは単一トークンを受け取り、表現形式やJSON文書を参照しません。

03

完全な結果を確認して保存する

主結果は取得したJSON、デコードした配列、生成したアドレス、または変換したトークンです。コピーとダウンロードに参考情報は含まれません。サンプルと消去は置換量を確認してから適用し、一度取り消して入力・設定・結果を復元できます。

元のデータを変更せずに調べる

五つの操作を使い分ける

解析は対象文書がなくても文法を確認できます。値の取得は実際の文書をたどり、生成は明示した文字列トークンを連結します。エスケープとアンエスケープは単一トークンを変換します。値の取得以外では無関係な文書入力を無視します。

通常形式とフラグメントを明示

通常形式では%、+、ドット、バックスラッシュ、空白、改行をそのまま扱います。フラグメントは#で始まり、空白と非ASCII文字にはUTF-8のパーセントバイトが必要です。パーセントデコードを一度行ってから分割し、各トークンを一度だけデコードします。

数値の表記と型を保持

選択した部分木はJSONの型、元のキー順、大きな整数、高精度小数、大きな指数、-0の表記を保持します。存在しないキーはエラーになりますが、取得したnull、false、0、空文字列は正しい値として残ります。

参考情報を見やすく表示

JSON Pointerの結果にはトークンと、利用可能な通常形式・フラグメント形式を表示します。空文字や制御文字を見せるJSON文字列表示の引用符は、生のアドレスには含まれません。各参考プレビューは5,000文字までです。

アドレスの規則と処理の上限

ルートと空のキー
空でない通常アドレスは/から始まります。連続した区切りや末尾の空トークンを保持し、空白を削除しません。オブジェクトのキーは厳密一致で、大文字小文字の同一視、Unicode正規化、プロトタイプ参照は行いません。入力に外側のJSON引用符を付けないでください。
デコードは一度だけ
エスケープは~を~0、/を~1に変えます。アンエスケープは生の/、単独の~、~2などを拒否します。~1を先に、~0を後に一度だけ処理するので、~01は文字どおりの~1になります。JSONの引用符やパーセントバイトは変換しません。
URIとUnicodeの出力条件
完全なURLではなくフラグメント部分だけを入力します。不正なUTF-8、生の空白・非ASCII文字・途中の#は拒否します。孤立したUTF-16サロゲートは通常結果に保持できますが、URI形式は生成できず、生のコピーとダウンロードも文字置換を防ぐため無効になります。解析したJSONエスケープ済み配列と、取得したJSON値は安全に出力できます。この文字を明示的にフラグメント生成するとエラーになります。
配列添字と読み取りの範囲
配列添字は0か先頭ゼロのない十進数字で、範囲内に限ります。-は配列末尾の後の存在しない位置で、読み取れません。ただしオブジェクトの-というキーは取得できます。スカラーの先には進めません。JSONPath、パッチ適用、ノード作成、全ツリー一覧、ファイル読込、URL取得は提供しません。
入力と出力の予算
関連する各入力は500,000文字までです。主結果と参考メタデータの合計も500,000文字までですが、出力対象は主結果のみです。単一トークンと通常パスは各100,000文字、トークンは1,000個まで。JSONは深さ100、50,000ノード、数値トークン1,000文字までです。コメント、末尾カンマ、BOM、重複キーは拒否し、上限超過では処理全体が失敗します。古い結果は出力できません。

JSON Pointerの質問

JSONPathとJSON Pointerは何が違いますか?

JSON Pointerはひとつの正確な位置を指すアドレスです。JSONPathはワイルドカードや条件を使って複数の値を検索できます。このツールはPointerを扱い、JSONPath式の検索や自動変換はしません。

入力したJSONは外部へ送信されますか?

いいえ。入力はブラウザのメモリ内で処理され、サーバーには送られません。URIフラグメントも文字列として扱うだけで、アドレスバーへ書き込んだり外部URLを取得したりしません。

大きなJSONでもすべて展開してよいですか?

このツールには全ツリーを展開する機能はありません。ひとつのアドレスを解析・取得します。関連入力は各500,000文字までで、JSONの深さ100、50,000ノードなどの上限があります。主結果と参考情報の合計も制限され、超過時は部分結果を出力しません。

PATCHリクエストで更新するJSONフィールドを指定する方法を教えてください。

対象フィールドの各階層をトークンに分け、/でつなぐPointerを使います。例えば/users/0/nameは最初のユーザーのnameです。本ツールで既存値を取得して対象を確認できますが、PATCHリクエストの送信や文書の更新は行いません。

入力内容は保存されますか?

永続保存はしません。入力・設定・結果は現在のページのメモリ内にあり、再読み込みで作業状態を引き継ぎません。必要な主結果はコピーまたはダウンロードで保存してください。置換の取り消しも現在の作業中の一回分です。

想定と違う位置を指していますか?

次のアドレスを確かめる

サンプルでJSON Pointerを試し、ルートと空のキーを比較してから、取得した値をコピーするか独自のトークンからアドレスを生成しましょう。