JSONとは?書き方・XML/CSVとの違い・メリット・活用事例をわかりやすく解説
JSONはデータを扱いやすくすることに長けており、多くのエンジニアに利用されているため、利用されている場面を見かけたことがある方は多いでしょう。しかし、エンジニアやエンジニアを目指す方のなかには、「実際に扱ったことがあるものの、その詳細はよく知らない」という方もいるのではないでしょうか。
そこで本記事では、JSONの機能や使い方を解説するとともに、その魅力と注意点を紹介します。
フリーランスを始めたい!自分の市場価値を知りたい!案件を探したい!
などでお悩みの方にオンライン相談会を開催中。是非お気軽にご相談ください。
JSONとは
まずは、JSONの特徴や、JSONの登場前から使われてきたXML・CSVとの違いを紹介します。
JSONの特徴
JSON(ジェイソン)とは「JavaScript Object Notation」を称略した言葉であり、データ定義方法の一種です。名前の示すとおり、JavaScriptのオブジェクト表記方法をもとにしています。
JSONのデータ構造は、人にとってもコンピュータにとってもわかりやすくなっており、扱いやすいことが特徴の一つです。テキストベースのデータ形式で読み取りと書き込みが比較的容易に行なえます。
その扱いやすさから、JSONはJavaScript以外にもPythonやPHP、Javaなどさまざまなプログラミング言語で利用されています。
JSONのデータ型
JSONが対応するデータ型は、以下の6種類です。
・文字列
・数値
・bool値(true/false)
・null
・オブジェクト(入れ子構造)
・配列
なお、文字列は日本語表記にも対応しています。
XML・CSVとの違い
JSONが登場する以前は、データの定義方法としてXMLやCSVがよく利用されていました。
XMLは、HTMLの表記方法をもとにしたデータ定義言語です。タグを使用してデータを囲み階層構造を持たせられますが、テキスト量が多く内容が複雑なため、JSONに比べると理解しづらい傾向があります。
CSVはカンマでデータが区切られている形式で、その多くはExcelで表示されます。行と列の概念を持っていますが、データの階層構造を表現するのが難しく、複雑なデータを扱う場合には向いていません。
したがって、XMLやCSVと比べると、データのわかりやすさや扱いやすさではJSONが優れているといえるでしょう。
JSONを利用する4つのメリット

JSONを利用するメリットを4点紹介します。
開発・メンテナンスのコスト削減が見込める
JSONは、専用のソフトウェアなどがなくても、テキストエディタでデータの作成・修正が可能です。そのため、データの作成やメンテナンスにかかるコストが、ほかの言語を利用するよりも抑えられるでしょう。
また、JSONはテキスト量が少なく比較的軽量なため、高速な通信を必要とする場面でも利用しやすいのが特徴です。XMLと比べても、JSONはタグを利用しない分、テキスト量が少なくて済みます。
データフォーマットの自由度が高い
データフォーマットの自由度の高さも、JSONが持つメリットの一つです。先述のとおり、文字列や数値だけでなく、オブジェクトや配列などの複雑な構造も、簡潔に表現できます。
また、JSONは項目名と値をペアで記載する表記方法であることから、環境依存やソフトウェアのバージョン依存による非互換の問題が起きにくいことも強みです。
プログラミング言語のカバー領域が広い
JSONは、幅広いプログラミング言語で利用可能です。ほとんどのプログラミング言語には、JSONを読み書きするための機能が備わっており、簡単に利用できるようになっています。
特別なファイルのインストールが不要なことは、開発時にJSONを利用するハードルを下げている要素の一つといえるでしょう。
フロントエンド開発で活用しやすい
現在、フロントエンドの開発では、ReactやVueといったJavaScriptのフレームワークが多く利用されています。
先述したように、JSONはJavaScriptの表記方法をベースにしています。そのため、これらのフレームワークとの親和性が高く、JSON形式のデータをサーバーから受け取り、加工せずにそのまま利用することが可能です。
現場でよく利用されているフレームワークと相性の良いJSONの活用は、フロントエンド開発の効率化にも寄与するといえるでしょう。
JSONを利用する際のデメリット
多くのメリットがある一方で、JSONには構造上の弱点もあります。デメリットをあらかじめ把握しておくと、ほかのデータ形式と使い分ける判断がしやすくなるでしょう。ここでは、実務で影響しやすい3つのデメリットを紹介します。
コメントを記載できない
JSONの仕様では、データ内にコメントを書くことが認められていません。プログラムのソースコードのように「この項目は何のための値か」という説明をファイル内に残せないため、項目数が多い設定ファイルなどでは、内容の意図が伝わりにくくなることがあります。補足が必要な場合は、仕様書など別のドキュメントに説明をまとめるのが一般的な対処法です。コメントを書ける拡張仕様としてJSON5やJSONCも存在しますが、標準のJSONとは互換性が異なるため、利用できる環境かどうかの確認が必要です。
データ構造が複雑になりやすい
JSONはオブジェクトや配列を何層でも入れ子にできるため、自由度が高い反面、階層が深くなりすぎてデータ全体の見通しが悪くなることがあります。階層の深いデータは読み解くのに時間がかかるだけでなく、プログラム側の処理も煩雑になりがちです。項目をあとから追加していくうちに、構造が肥大化するケースも少なくありません。データを設計する段階で、階層は必要最小限にとどめる、項目名の付け方を統一するといったルールを決めておくと、複雑化を防ぎやすくなるでしょう。
扱えるデータ型に制限がある
JSONで扱えるデータ型は、文字列・数値・bool値・null・オブジェクト・配列の6種類のみです。日付や時刻を表す専用の型は用意されていないため、日付は”2026-08-23″のような文字列として保存し、プログラム側で日付型に変換して使うのが一般的です。画像などのバイナリデータもそのままでは格納できず、Base64と呼ばれる方式でテキストに変換する必要があります。型の制限を理解しないままデータ設計を進めると、あとから変換処理の追加に手間がかかる点に注意しましょう。
JSONの基本的な書き方
JSONでは、{}の間に項目名と値を、コロンで区切って記述するのが基本です。
以下では、4つのルールに分けて解説します。なお、文字列が長く読みづらい場合は、改行やインデントを活用しても構いません。
1.項目名と値をペアで記述し、区切りとしてコロン(:)を使う
例えば、{“name”: “John”}のように記述します。この場合は、”name”が項目名であり、”John”が値です。
2.項目名はダブルクォーテーション(”)で囲む
例えば、{“age”: 16}のように記述します。
3.複数のデータを指定する場合は、間をカンマ(,)で区切る
複数の項目を含む場合、それぞれの項目をカンマで区切って記述します。
例えば、{“name”: “John”, “age”: 16}のようになります。
4.データ全体を波カッコ({})または角カッコ([])で囲む
JSONでは、データ全体を波カッコ({})または角カッコ([])で囲みます。波カッコはオブジェクトを表し、角カッコは配列を表します。
例えば、{“name”: “John”, “age”: 16, “result”: [92,76,81,87,69]}のようになります。
JSONファイルの作り方・開き方
JSONは、パソコンに標準搭載されているメモ帳などのテキストエディタがあれば、誰でもすぐにファイルとして作成できます。専用ソフトウェアの購入やインストールは不要です。ここでは、JSONファイルの作り方と開き方を手順に沿って紹介します。
JSONファイルの作り方
JSONファイルは、テキストエディタで内容を記述し、拡張子を「.json」にして保存するだけで作成できます。手順は次のとおりです。
・メモ帳やVSCodeなどのテキストエディタを開く
・{“name”: “John”, “age”: 16}のように、JSONの書き方に沿ってデータを記述する
・「sample.json」のように、拡張子を.jsonにしてファイルを保存する
保存時の文字コードは、日本語の文字化けを防ぐためUTF-8を選択するのが基本です。エディタによっては保存画面で文字コードを指定できるため、必ず確認しておきましょう。
JSONファイルの開き方
作成したJSONファイルは、テキストエディタの画面にドラッグアンドドロップするか、ファイルを右クリックして「プログラムから開く」でエディタを指定すると開けます。Google ChromeやMicrosoft Edgeといったブラウザにドラッグして、内容を表示することも可能です。ダブルクリックした際に意図しないアプリが起動してしまう場合は、拡張子「.json」に関連付けるアプリを、普段使うエディタへ変更しておくと扱いやすくなります。内容を編集したいときは、ブラウザではなくエディタで開きましょう。
JSONの活用事例
ここでは、JSONの活用事例を紹介します。
システム間のデータ転送
JSON形式は、APIサーバーを介したシステム間のデータ転送における、デファクトスタンダードとなっています。
APIとは、プラットフォームが持つ汎用性の高い機能を、外部へ提供する仕組みのことです。APIによって、ソフトウェアの開発コストが大幅に削減されることもあり、現在多くのサービスで活用されています。
JSONはこのAPIサーバーの標準的な応答形式であり、データ転送をする際には必須といえるでしょう。
データの一時保存
JSONは、ユーザーが入力した情報やデータを、一時的に保存する際に利用できます。非テキスト型のデータを保存する場合は、シリアライズ(複数ある並列データの直列化)が必要ですが、直感的なデータの保存と読み込みが可能です。
JSON文字列とオブジェクトの変換
JSONはテキスト形式でデータを保持しますが、コンピュータにとってテキスト形式は扱いにくいものです。
そのため、プログラミング言語では、JSON文字列をオブジェクトに変換して利用することが多くなっています。逆に、プログラミング言語により処理を行なったオブジェクトは、JSON文字列に変換することも可能です。
JSON文字列から、コンピュータが扱えるオブジェクトへ変換するには、JSON.parseメソッドを利用します。そしてオブジェクトから、人が読みやすいJSON文字列へ変換するには、JSON.stringifyメソッドを利用します。
このように、JSON文字列とオブジェクトを用途に応じて相互変換して利用することは、効率的なデータ転送を可能にするでしょう。
言語別のJSON読み書きコード例
主要なプログラミング言語には、JSONを読み書きするための機能が標準で用意されています。ここでは、実務でよく使われるJavaScript・Python・PHPの3言語について、JSON文字列とオブジェクトを相互変換する基本のコード例を紹介します。
JavaScriptのコード例
JavaScriptには、JSONを扱う機能が標準で組み込まれています。JSON文字列からオブジェクトへの変換と、その逆の変換は次のように記述します。
// JSON文字列 → オブジェクト
const obj = JSON.parse(‘{“name”: “John”, “age”: 16}’);
console.log(obj.name); // John
// オブジェクト → JSON文字列
const text = JSON.stringify(obj);
サーバーへデータを送信する直前にJSON.stringifyで文字列化し、受け取った側がJSON.parseで復元するのが、Web開発における基本の流れです。
Pythonのコード例
Pythonでは、標準ライブラリのjsonモジュールを読み込んで使います。JSON文字列と辞書型の相互変換は次のとおりです。
import json
# JSON文字列 → 辞書型
data = json.loads(‘{“name”: “John”, “age”: 16}’)
# 辞書型 → JSON文字列
text = json.dumps(data, ensure_ascii=False)
日本語を含むデータをjson.dumpsで変換すると、初期設定では文字が読めない形式に変換されます。ensure_ascii=Falseを指定すると、日本語のまま出力が可能です。ファイルを直接読み書きする場合は、json.loadとjson.dumpという別のメソッドを使う点も覚えておきましょう。
PHPのコード例
PHPでも、標準機能だけでJSONを扱えます。JSON文字列と連想配列の相互変換は次のとおりです。
// JSON文字列 → 連想配列
$data = json_decode(‘{“name”: “John”, “age”: 16}’, true);
// 連想配列 → JSON文字列
$text = json_encode($data, JSON_UNESCAPED_UNICODE);
json_decodeの2つ目の引数にtrueを指定すると連想配列として、省略するとオブジェクトとして受け取れます。日本語をそのまま出力したい場合は、json_encodeにJSON_UNESCAPED_UNICODEを指定しましょう。
JSONを利用する際の注意点

JSONを利用する際の注意点としては、以下の3点が挙げられます。
JavaScriptコーディングルールとの違い
JSONはJavaScriptをベースにしていますが、JavaScriptの表記方法のすべてがJSONで許されているわけではありません。
例えば、JavaScriptのコーディングルールに従い、シングルクォーテーションで括った文字列やキーを記述すると、JSONでは不正になります。
これは、普段からJavaScriptに親しんでいる技術者ほど、特に注意すべき点といえるでしょう。
バリデーションの実施
パーサー(コンパイル時に動く構文解析機能)によって、不正なJSONがどのように処理されるかは明確に決められていません。したがってバリデーション(データが正しいか確認すること)は、JSONを扱ううえで欠かせない作業といえます。
バリデーションを行なわなければ、データの整合性が喪失するだけでなく、予測困難なエラー発生により開発・メンテナンス作業が複雑化する可能性があるでしょう。
処理の効率性
JSONのデータ構造は柔軟であり、多くの配列やオブジェクトを含められます。
しかし、データ量や複雑さが増すと、処理の回数や処理時間が増加し、コンピュータの動作が重くなることが考えられるでしょう。したがって、JSONを効率的に利用するには、データ設計の最適化が必要だといえます。
JSONでよくあるエラーと解決法
JSONの構文はシンプルですが、記述ルールが厳密なため、わずかな入力ミスでもエラーが発生します。ここでは、実務で遭遇しやすい3つのエラーと解決法を紹介します。原因のパターンを知っておくと、修正にかかる時間を大幅に短縮できるでしょう。
末尾のカンマによる構文エラー
最後の項目のうしろに余分なカンマが残っていると、構文エラーが発生します。{“name”: “John”, “age”: 16,}のように、最終項目のあとに付いたカンマが典型例です。JavaScriptのオブジェクトでは末尾のカンマが許容されるため、JavaScriptに慣れた方ほど見落としやすいミスといえます。エラーが出た場合は、まず各オブジェクトや配列の最後の項目にカンマが残っていないかを確認しましょう。項目の削除や並べ替えをした直後は特に発生しやすいため、編集後のチェックを習慣にするのが有効です。
引用符の誤りによるエラー
項目名や文字列をシングルクォーテーションで囲んだり、引用符を付け忘れたりすると、読み込み時にエラーが発生します。{‘name’: ‘John’}は一見正しく見えますが、JSONで認められているのはダブルクォーテーションのみです。WordやWebページから文をコピーした際に、「“ ”」のような飾り付きの引用符が紛れ込んでエラーになるケースもあります。すべての項目名と文字列がダブルクォーテーションで囲まれているかを確認し、コピーで紛れ込んだ記号はエディタ上で打ち直しましょう。
文字コードによる文字化け
日本語を含むJSONファイルで文字化けが起きる場合、文字コードの不一致が原因であることがほとんどです。JSONは原則としてUTF-8で保存する決まりのため、Shift-JISなど別の文字コードで保存すると、読み込み側で正しく表示されません。エディタの保存設定をUTF-8に変更することで解消できます。また、BOMと呼ばれる目印付きのUTF-8で保存すると、プログラムによっては読み込みエラーになるため、選択できる場合は「UTF-8(BOMなし)」を指定しておくと安全です。
JSONの編集・整形に便利なツール
JSONはテキストエディタだけでも編集できますが、専用ツールを活用すると、構文チェックや整形の手間を大幅に減らせます。ここでは、無料で使える定番のツールを3つ紹介します。前章で紹介したようなエラーの予防にも役立つでしょう。
| ツール名 | 種類 | 特徴 |
|---|---|---|
| VSCode | エディタ(無料) | 構文エラーの自動検出や整形機能を標準搭載。拡張機能の追加で、さらに機能を強化できる |
| JSON Editor Online | ブラウザツール | インストール不要。階層構造をツリー形式で表示でき、複雑なデータの確認・編集がしやすい |
| JSONLint | ブラウザツール | データを貼り付けるだけで構文チェックができ、エラー箇所を行単位で指摘してくれる |
日常的な開発ではVSCodeを基本とし、階層構造の確認にはJSON Editor Online、エラー原因の特定にはJSONLintという使い分けが便利です。いずれも無料で利用できるため、まずは手元のデータで試してみてはいかがでしょうか。
まとめ
JSONは、扱いやすく便利なデータ定義方法の一つです。開発・メンテナンスのコスト削減やデータの自由度の高さ、さまざまなプログラミング言語での利用が可能な点など、多くのメリットがあります。
使用に際していくつかの注意点はあるものの、学習しやすく開発利用へのハードルも低いため、今後も多くの現場で利用されるでしょう。JSONの習得により、より効率的なデータ処理を実現してはいかがでしょうか。
株式会社PE-BANKは、1989年創業の35年以上の歴史を持つITフリーランスエージェントです。1,000社以上の取引先企業との連携によって常時5,000件以上の案件を公開しており、全国展開による地方案件の豊富さも強みとしています。 最大の特徴は、独自の「共同受注方式」によるマージン率の透明性と低さです。手数料は10%〜15%と業界トップクラスの低水準(高還元)であり、継続期間に応じてさらに優遇されるため、同一条件の案件でも「手取り額」が最大化されます。 所属エンジニアの平均年収は935万円に達しています。ITフリーランスとして、案件を探している方は、PE-BANKにご相談ください。
この記事をシェア
関連記事
