JSON フォーマッターの背景にある物語
JSON は今やほとんどの Web API が使う形式ですが、委員会が設計したものではありません。発明というより発見されたものです。プログラム間でデータを受け渡すのにちょうど足りる、JavaScript の小さな部分集合でした。
発見された形式
2001 年ごろ、Douglas Crockford と State Software の同僚たちは、プラグインなしでブラウザーとサーバーがデータをやり取りする方法を探していました。JavaScript がすでに理解していたオブジェクトと配列のリテラルを使い、そのアイデアに名前を付け、文法を json.org に公開しました。名刺の裏に収まるほど短いことで知られています。
コメントがない理由
Crockford は早い段階で JSON からコメントを取り除きました。コメントにパーサー向けの指示を書く人が出てきて、相互運用性が壊れかねなかったからです。彼の助言は、解析の前に圧縮ツールでコメントを消すことでした。そのためフォーマッターはコメントを予期しない文字として報告し、設定ファイル向けには JSON5 や JSONC といった形式が生まれました。
Web ページから標準へ
JSON は 2006 年に RFC 4627 として初めて記述されました。Ecma は 2013 年に ECMA-404 を公開し、IETF は 2017 年に旧文書を RFC 8259 で置き換え、システム間でやり取りする JSON に UTF-8 を求めました。文法は json.org 以来ほとんど変わっていません。オブジェクト、配列、文字列、数値、true、false、null です。
数値とパス
JSON 自体は数値を制限しませんが、多くのパーサーは 64 ビット浮動小数点数として保存します。そのため 9007199254740991 を超える整数は気づかないうちに精度を失うことがあり、大きな ID は文字列で送られることがよくあります。値を指し示す方法として、Stefan Goessner が 2007 年に XPath をもとに JSONPath を提案し、2024 年に RFC 9535 として標準になりました。このフォーマッターがコピーするパスは、ドル記号と角かっこを使うその記法に従います。
よくある質問
JSON を発明したのは誰ですか?
Douglas Crockford が 2000 年代初めに JSON を仕様化し、広めました。本人は発見したと言っています。すでに存在した JavaScript の部分集合だからです。
なぜ JSON は末尾のカンマや一重引用符を許さないのですか?
どの言語でも同じように解析できるよう、文法をできるだけ小さく保ったからです。便利な機能を一つ足すたびに、二つのパーサーの結果が食い違う機会が増えます。
JSON は JavaScript のオブジェクトと同じですか?
いいえ。JSON はテキストです。キーには二重引用符が必要で、関数、undefined、コメント、NaN、Infinity は使えません。JavaScript のコードでは使えてもです。
試してみますか?
ブラウザで PictorX を開きます。インストール不要、始めるのにクレジットカードも不要です。
JSON フォーマッターを開く