JSON ファイル形式とは?
拡張子 .json を持つファイルには、JavaScript のサブセットから派生した表記法を使用し、UTF-8 エンコーディングで保存されたプレーンテキスト形式のデータが含まれています。現在の形式の正式な定義は ECMA-404 および IETF RFC 8259 (2017) であり、以前の RFC 4627 を置き換えたものです。.json は、ネットワークを介した情報の転送や、設定、セッティング、シリアル化されたアプリケーションの状態の保存などに広く利用されています。
.json ドキュメントには以下を保持できます:
- 文字列 (Strings)
- 数値 (Numbers - IEEE 754 倍精度浮動小数点数)
- 真偽値 (Boolean values -
trueおよびfalse) null- 上記要素の配列 (Arrays)
- オブジェクト (Objects - キーと値のマップ)
オブジェクトと配列は多層にネスト(入れ子)することが可能です。.json ファイルの構文は JavaScript に基づいていますが、実質的にあらゆるプログラミング言語で書かれたアプリケーション内で使用されています。JavaScript では、解析とシリアル化は組み込みの JSON.parse() および JSON.stringify() メソッドによって処理され、これらは ECMAScript 5 以降で利用可能です(外部ライブラリは不要です)。この形式はコメントをサポートしていません。関連するテキストベースのデータ形式には YAML、XML、CSV があります。
セキュリティと安全性
リスク: LOWJSON ファイルは純粋なデータであり、コードを含んだり実行したりすることはできないため、エディタで開くことは安全です。リスクは情報面にあります。データのエクスポートには個人データ、API キー、セッショントークンが含まれることが多いため、オンラインビューアーに貼り付けたり共有したりしないでください。また、開発者の場合は、信頼できない JSON を JSON.parse() の代わりに eval() で解析したり、サービス拒否攻撃につながる巨大なファイルを扱ったりすることが典型的な落とし穴です。ダウンロード時の二重拡張子 (.json.exe) に注意してください。
形式の詳細
概要JSON ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | application/json |
| 文字エンコーディング | UTF-8。RFC 8259 はネットワーク交換において BOM なしの UTF-8 を義務付けています |
| ファイルシグネチャ (マジックバイト) | なし - プレーンテキスト。有効なドキュメントは «{» (オブジェクト) または «[» (配列) で始まり、その前に空白文字が置かれることもあります |
| サポートされるデータ型 | string, number, boolean (true/false), null, array, object |
| 数値表現 | IEEE 754 倍精度 (64ビット) 浮動小数点。仕様では個別の整数型は定義されていません |
| 文字列エンコーディング | Unicode。非 ASCII 文字はリテラル UTF-8 または \uXXXX 形式の4桁の16進数エスケープシーケンスとして記述されます |
| コメントのサポート | なし - コメントは JSON 仕様から明示的に除外されています |
| 空白文字 | トークン間の重要でない空白(スペース、タブ、CR、LF)は許可されています |
| BOM の扱い | RFC 8259 は、JSON 交換ドキュメントの先頭に UTF-8 BOM を付けることを明示的に禁止しています |
| オブジェクトキーの一意性 | オブジェクト内のキーは一意であるべきです。RFC 8259 は重複を禁止していませんが、その挙動は実装に依存します |
| ネスト | オブジェクトと配列の無制限の再帰的ネストが可能ですが、実用的な深さはパーサーのスタックサイズに制限されます |
| 組み込み JavaScript API | JSON.parse() および JSON.stringify() は ECMAScript 5 (2009) 以降ネイティブ対応しており、サードパーティ製ライブラリは不要です |
| 相互運用性 | 言語に依存しません。実質的にすべての主要なプログラミング言語にパーサーとシリアライザーが存在します |
| 一般的な用途 | REST API ペイロード、アプリケーション設定ファイル、データシリアル化、ストリーミングログ行 (JSONL / NDJSON)、ウェブアプリマニフェスト |
| リリース日 | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.rfc-editor.org |
JSON の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。JSON ファイルについて最初の質問をしてみましょう。