JSONとは?データ交換を支える軽量フォーマットを徹底解説

XのアイコンFacebookのアイコンはてなブックマークのアイコンPocketのアイコンLineのアイコン

JSONとは?データ交換を支える軽量フォーマットを徹底解説のイメージ図

データのやり取りが欠かせない現代のソフトウェア開発やWebサービスにおいて、「JSON(ジェイソン)」は今や必須の技術となりました。人にもコンピュータにも読み書きしやすいシンプルな構造が特徴で、さまざまなプログラミング言語やシステムで幅広く活用されています。

本記事では、JSONの基本から使い方、注意点、そしてXMLやYAMLとの違いまでを、実際の開発現場ですぐ役立つ視点で解説していきます。

 

目次

 

初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント

システム開発「はじめの一歩」ITのプロから学ぶ基礎知識

この資料でわかること
・システム開発の流れ
・専門用語の解説
・開発手法によるメリット・デメリット
・失敗を防ぐコツ

 

JSONとは

現代のソフトウェア開発やWebサービス、アプリケーションでは、データのやり取りが不可欠です。この分野で標準的に利用されているのが「JSON(JavaScript Object Notation)」です。人にもコンピュータにも扱いやすいテキストベースの形式で、さまざまな開発現場で利用されています。国際的な標準仕様(RFC 8259、ECMA-404、ISO/IEC 21778:2017)で厳密に定められており、今や欠かせない存在となりました。

 

●定義と特徴

JSONは、「名前と値のペア」や「値のリスト(配列)」でデータを表現する軽量なデータ交換フォーマットです。言語や実行環境を問わず使えるのが大きな特徴で、多くのプログラミング言語で標準サポートされています。テキスト構造なので人間にも読みやすく、機械による解析や生成も容易です。データの識別にはMIMEタイプ「application/json」が使われています。また、RFC 8259の規定により、限定された環境外で交換されるJSONはUTF-8でエンコードされなければならない(MUST)とされています。

 

●JSONの読み方

日本語では「ジェイソン」と読むのが一般的です。英語圏の開発者でも「ジェイソン」や「ジェイソーン」と発音されることが多いです(/ˈdʒeɪ·sən/)。

 

JSONの構文とデータ型

JSONはシンプルな構文と、限られた種類のデータ型で構成されています。書き方に厳格なルールがあり、わずかなミスでもパースエラー(構文エラー)となるため注意が必要です。

 

●基本データ型

JSONで扱えるデータ型は6つだけです。どれも決められた書き方を守る必要があります。

データ型 説明
数値 整数・小数・指数表記が使えます。NaNやInfinityは不可。
文字列 ダブルクォーテーションで囲む。Unicode対応。
真偽値 true または false の2種類。
配列 []で囲んだリスト。カンマ区切り。
オブジェクト {}で囲んだ「キーと値」のセット。
null 値が無いことを表す。

 

●書き方のルール

  • コメントは書けません(RFC 8259・ECMA-404で仕様上サポートされていません)
  • 配列やオブジェクトの最後にカンマを付けてはいけません(トレーリングカンマ禁止)
  • オブジェクトのキー(プロパティ名)は必ずダブルクォーテーションで囲む必要があります
  • ファイル全体の文字コードはUTF-8でエンコードしなければなりません

 

JSONとJavaScriptの関係

JSONはもともとJavaScriptの「オブジェクト記法」を元に生まれましたが、現在はJavaScriptに限らず多くの言語やシステムで使われている独立したフォーマットとなりました。

 

●共通点と違い

JSONとJavaScriptのオブジェクトリテラル表記は非常によく似ていますが、完全に同じではありません。JavaScriptでは省略できるクォーテーションも、JSONでは必ず必要です。また、ECMAScript 2019以降は“JSON superset”の仕様変更により、有効なJSONが有効なJavaScript文字列リテラルとして安全に扱えるようになりました。データの変換はJavaScriptのJSON.parse()JSON.stringify()で安全に行えます。なお、evalによる変換は非推奨です。

 

●利用時の注意点

JSONデータの解析(パース)にeval()を使うのは非常に危険です。意図しないコード実行やXSS(クロスサイトスクリプティング)など、深刻なセキュリティリスクにつながります。必ずJSON.parse()など、専用APIや関数を利用してください。また、古いJavaScript環境では、一部のUnicode文字(U+2028、U+2029など)の扱いが異なることがあるため注意しましょう。

 

JSONの用途

現代のシステム開発では、JSONの活用シーンが広がり続けています。特にWeb API、設定ファイル、データベース領域での採用が多いです。

 

●APIでの利用

Web APIのリクエストやレスポンス形式としてJSONが事実上の標準です。RESTful APIはもちろん、GraphQLでもレスポンスにはJSONが一般的に使われます。なお、GraphQLのHTTPリクエストはJSONボディで送信する方法が一般的ですが、クエリ本文自体はJSONではなくGraphQL言語です。シンプルな構造により、クライアントとサーバー間で効率よくデータをやり取りできます。

 

●設定ファイル

アプリケーションや開発ツールの設定ファイルとしてもJSONはよく利用されています。ただし、コメントを記述できないため、注釈や説明が必要な場合はJSON5やJSONC(Visual Studio Codeの設定ファイルなど)が活用されるケースも増えています。

 

●データベース

  • ドキュメント型データベース(例:MongoDB)は、JSON互換のデータ構造(BSON)を採用しています
  • リレーショナルデータベースでも、PostgreSQL(json/jsonb型)、MySQL(JSON型)、SQLite(JSON関数)などでJSONのネイティブサポートが進んでいます

これにより、従来の表形式データと柔軟なデータ表現が両立できるようになりました。

 

JSON Schemaによる検証

JSONデータの品質や安全性を担保する仕組みとして、「JSON Schema」が広く使われています。これはJSONデータが「どのような構造や値を持つべきか」を機械的に検証できる仕組みです。

 

●JSON Schemaの役割

JSON Schemaでは、データ型や必須項目、値の範囲やパターンなど、詳細な条件を定義できます。APIのバリデーションや自動ドキュメント生成、仕様書作成などさまざまな用途で活用されています。2025年時点での最新ドラフトは「2020-12」です。

 

●よくある利用シーン

  • Web APIのリクエストやレスポンスの検証
  • フォーム入力や設定ファイルの構造チェック
  • 継続的インテグレーション(CI)での自動テスト

このように、システム開発のあらゆる場面でデータの信頼性と一貫性を高める役割を果たしています。

参考:JSON Schema「Specification」

 

JSONの安全性と注意点

便利なJSONですが、運用時にはいくつかのリスクや注意点も存在します。安全に使うためには、特にセキュリティ面やデータ精度に気を配ることが重要です。

 

●セキュリティ上の注意

  • eval()による実行は、XSS(クロスサイトスクリプティング)や意図しないコード実行の原因となるため、絶対に避けてください
  • サイズが極端に大きいJSONや、入れ子が深すぎるデータはDoS(サービス妨害)やメモリ枯渇のリスクを高めます
  • こうした事態を防ぐため、受け入れるデータのサイズや深さに現実的な制限を設けることが推奨されています。
  • パーサーごとの実装差や、仕様違反データへの挙動にも注意が必要です。

 

●データ精度の注意

  • JSONの数値は、ほとんどの実装でIEEE 754倍精度(binary64)で扱われます。非常に大きな数値や小数点以下の誤差などに注意が必要です
  • たとえば、4242.04.2E+1は同じ値として扱われる場合があります
  • オブジェクト内のキーが重複する場合、RFC 8259は「一意であるべき(SHOULD)」としていますが、実際は多くの実装で最後の値で上書きされます

このような挙動は想定外のバグにつながるため、重複キーは避けることが推奨されます。

 

JSONと他フォーマットの比較

JSONはXMLやYAMLなど、他の主要なデータフォーマットとよく比較されます。それぞれの特性を知り、用途に合わせて選択することが大切です。

 

●XMLとの違い

JSONは直感的でコンパクトな記法のため、人間にとっても読みやすいという特徴があります。一方、XMLはタグベースでコメントやスキーマバリデーション、属性、名前空間など多機能ですが、その分冗長になりがちです。データのやり取りにはJSON、厳密な構造や検証が必要な場面ではXMLが選ばれる傾向があります。

 

●YAMLとの違い

YAMLは「YAML 1.2」以降、JSONの厳密なスーパーセットを目指して設計されています。つまり、JSONファイルはYAMLとしても有効ですが、実際のパーサーやバージョン差によって挙動が異なる場合もあります。YAMLは人が手で編集しやすく、コメントも記述できますが、文脈による曖昧さや実装差もあるため、本番環境での互換性には注意が必要です。対して、JSONは機械処理や相互運用性に優れ、厳密な構文が求められる場面で安心して使えます。

フォーマット 構文スタイル 可読性 冗長性 コメント スキーマ/検証 名前空間 パースの複雑さ 主な用途
JSON キーと値のペア 良好 低い なし JSON Schema なし 低い API, Web通信
XML タグベース やや複雑 高い あり XSD / DTD あり 高い 文書, エンタープライズ
YAML インデントベース 非常に高い 低い あり 限定的 なし 中程度 設定ファイル

 

JSONを理解して効率的に活用しよう

ここまで、JSONの基本から構文、データ型、活用方法や注意点まで幅広く解説してきました。JSONはWeb開発やクラウド時代の共通言語です。厳密な構文ルールと専用パーサーの利用、UTF-8でのエンコーディング、データサイズや深さの制限、重複キー回避など、仕様を意識した運用がトラブル回避につながります。API設計やアプリケーション開発、データ保存や連携など、さまざまな現場で役立つ技術なので、自身のプロジェクトに最適な使い方を見つけてみてください。

 

初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント

システム開発「はじめの一歩」ITのプロから学ぶ基礎知識

この資料でわかること
・システム開発の流れ
・専門用語の解説
・開発手法によるメリット・デメリット
・失敗を防ぐコツ

 

■JSONに関連した記事

 

著者情報
発注ラウンジでは、システム開発・ホームページ制作やSaaS製品など、ITの発注に役立つ情報をお届けしています。 運営元はIT業界に特化したビジネスマッチングサービスを運営する「発注ナビ」。IT専門のメディアを展開する東証プライム上場ITmediaのグループ企業です。
FacebookXInstagramYouTube
希望ぴったりの外注先がラクして見つかる
soudan_banner

人気記事

関連記事

関連特集

offer_banner即実践!DX成功のカギ お役立ち資料 資料一覧はこちら
即戦力のシステム開発会社を探すなら発注ナビロゴ
発注ナビは、システム開発に特化した
発注先選定支援サービスです。
紹介実績
25000
対応社数
7000
対応
テクノロジー
319
紹介達成数
92%
システム開発の発注先探しで
こんなお悩みありませんか?
checkbox
なかなかいい外注業者
見つからない。
checkbox
ITの知識がなくて
発注内容をまとめられない。
checkbox
忙しくて外注業者を探す
時間がない
悩んでいる人物
発注ナビの主な特徴
IT案件に特化
IT案件に特化
日本最大級7000社以上のシステム開発・WEB制作会社が登録。IT専門だから細かい要望が伝わり、理想的なパートナーが見つかる。
ITへの不安を徹底サポート
ITへの不安を徹底サポート
専門コンシェルジュがしっかりヒアリングするので、IT知識に不安があっても、まだ要件が固まっていなくても大丈夫。
完全無料・最短翌日紹介
完全無料・最短翌日紹介
コンシェルジュに発注内容を話すだけで最短翌日に開発会社をご紹介。しかも完全無料・成約手数料も無し。
さらに
東証プライム上場
「アイティメディア株式会社」
グループが運営
ご相談内容は一般公開しないため、クローズド案件でも安心。
ご紹介企業は第三者調査機関にて信用情報・事業継続性を確認済です。

発注先探しの
ご相談フォーム

発注ナビは貴社の発注先探しを
徹底的にサポートします。
お気軽にご相談下さい。
必須
必須
必須
■必要な機能・課題■ご予算■スケジュールなど
■企画書やRFPの添付が可能です(10MBまで)

会員登録には、
発注ナビ 利用規約  及び 個人情報の取扱い 
「当社からのメール受信」への同意が必要です。