結論から
- JSONは、構造化された値を表す言語非依存のテキスト形式のデータ交換フォーマットであり、オープンシステム間の交換ではUTF-8が必須で、数値や入れ子の上限はパーサーによって異なります。
- 内容を見るにはテキストエディターで開き、構文確認や構造の読み取りにはJSONパーサーを使います。WindowsとmacOSではエディターの「開く」からファイルを選びます。スマートフォンではテキストまたはJSONへの対応を明示したアプリで、ファイル選択機能から開きます。
- 信頼できない入力はJSONパーサーで読み取ります。JSONの構文には代入や関数呼び出しはありませんが、evalなどで解析するとコードが実行される危険があります。正常に解析できても、データの信頼性は保証されません。
JSONファイルの開き方・エラー確認・変換
JavaScript Object NotationはECMAScriptの構文に由来します。オブジェクト、配列、文字列、数値、真偽値、nullを扱います。オブジェクトは順序を持たない名前と値の組で、配列は順序を持つ列です。IANAの登録では拡張子は.json、メディアタイプはapplication/jsonで、固定のマジックナンバーはありません。
JSONをExcelなどの表に変換する際は、入れ子のオブジェクトや配列を列、行、別の表のどこに配置するか決めます。変換前後で巨大な整数、高精度の小数、重複キー、配列の順序を確認してください。
開き方
内容を見るにはテキストエディターで開き、構文確認や構造の読み取りにはJSONパーサーを使います。WindowsとmacOSではエディターの「開く」からファイルを選びます。スマートフォンではテキストまたはJSONへの対応を明示したアプリで、ファイル選択機能から開きます。
内容を見るにはテキストエディターで開き、構文確認や構造の読み取りにはJSONパーサーを使います。WindowsとmacOSではエディターの「開く」からファイルを選びます。スマートフォンではテキストまたはJSONへの対応を明示したアプリで、ファイル選択機能から開きます。
JSONをExcelなどの表に変換する際は、入れ子のオブジェクトや配列を列、行、別の表のどこに配置するか決めます。変換前後で巨大な整数、高精度の小数、重複キー、配列の順序を確認してください。
安全チェック
信頼できない入力はJSONパーサーで読み取ります。JSONの構文には代入や関数呼び出しはありませんが、evalなどで解析するとコードが実行される危険があります。正常に解析できても、データの信頼性は保証されません。
送り主が分からない、拡張子が二重になっている、中身が拡張子と合わない——一つでも当てはまるなら、開く前に確かめてください。
変換するときは
JSONをExcelなどの表に変換する際は、入れ子のオブジェクトや配列を列、行、別の表のどこに配置するか決めます。変換前後で巨大な整数、高精度の小数、重複キー、配列の順序を確認してください。
元ファイルではなくコピーを変換し、変換後に画質・メタデータ・レイアウトを元と見比べてください。
よくある質問
JSONファイルとは何に使う形式ですか?
JSONは、異なるプログラミング言語のアプリケーション間で構造化データを交換する形式です。オブジェクト、配列、文字列、数値、真偽値、nullを表します。
WindowsでJSONファイルを開く方法は?
テキストエディターの「開く」から.jsonファイルを選択します。構文の確認や値の構造的な読み取りにはJSONパーサーを使ってください。
MacでJSONファイルを開く方法は?
macOSのテキストエディターでファイルを開くと内容を読めます。構文を確認する場合はJSONパーサーを使います。文字が表示されるだけでは構文の正しさは確認できません。
スマートフォンでJSONファイルを開く方法は?
テキストまたはJSONへの対応を明示したアプリを選び、アプリのファイル選択機能から開きます。扱えるサイズや解析上の制限はアプリごとに異なります。
JSONファイルが開けないとき、構文エラーを直す方法は?
パーサーが示す位置の引用符、カンマ、括弧、値の書式を確認します。文字コード、サイズ、入れ子の上限も確認してください。対になっていないUTF-16サロゲートは、解析結果の不一致や実行時エラーの原因になります。
JSONファイルの中国語の文字化けを直す方法は?
UTF-8として読み込んでいるか確認します。オープンシステム間のJSON交換ではUTF-8が必須で、ネットワーク送信時にBOMを付加してはいけません。元のバイトが保たれていれば、正しい文字コードで開き直すことで改善する場合があります。
JSONとJavaScriptコードの違いは何ですか?
JSONはECMAScriptの構文に由来するデータ形式です。JavaScriptコードは実行する操作も表せますが、JSONには代入や関数呼び出しがありません。データを読むにはJSONパーサーを使います。
JSONをExcelに変換して入れ子のデータを残す方法は?
入れ子のオブジェクトや配列の扱いが明記された変換ツールを選びます。列への展開、行への展開、別の表への分割などの対応を決め、結果を元データと比較してください。保持できる内容はツールと対応付けによります。
JSONの巨大な整数の精度低下を防ぐ方法は?
使用するすべてのパーサーと変換ツールの数値範囲と精度を確認します。実装による制限で巨大な整数や高精度の小数が変わる場合があるため、処理後の値を元のテキストと比較してください。
JSONの重複キーはどの値が残りますか?
実装によって異なります。最後の値だけを残すもの、エラーにするもの、すべて保持するものがあります。アプリケーション間で交換するデータでは名前を一意にしてください。
信頼できないJSONファイルを読むのは安全ですか?
evalなどの実行機構を使わず、JSONパーサーで読み取ってください。JSONには代入や関数呼び出しはありませんが、信頼できない入力を実行するとコードが動く危険があります。構文が正しくても内容の信頼性は証明されません。
JSONファイルのサイズと入れ子の深さに上限はありますか?
RFC 8259は、パーサーがテキストサイズと入れ子の深さを制限することを認めています。すべてのアプリに共通する処理可能サイズはないため、使用するアプリの制限を確認してください。
関連する形式
参考資料
RFC 8259 — The JavaScript Object Notation (JSON) Data Interchange Format · IETF / RFC Editor,互联网标准
IANA Media Type Registration — application/json · IANA,官方媒体类型登记