JSONとは?多言語で使用できるデータフォーマットを解説!

最終更新日:2024年3月26日

JSONとは、JavaScriptのオブジェクト構文を用いたデータ交換フォーマットです。JavaScriptをはじめ、Python、OHO、C++、Javaなどさまざまな言語でサポートされており、Webアプリケーションでデータを転送する際によく利用されます。本記事では、JSONに興味がある方や習得を検討しているエンジニアへ向けて、JSONの概要や特徴、メリット、使用する際の注意点や基本的な書き方などを解説します。

今もらっている年収は高い?低い?

支援実績10年の登録者データを基にした エンジニア・クリエイター専門 年収診断 無料診断START

この記事のまとめ

  • JSONはWeb開発において欠かせない技術となっている
  • CSVやXMLよりも軽量で記述方式がシンプル。開発コストやメンテナンスコストを削減でき、どのような環境でも利用しやすいメリットがある
  • Web開発の案件に参画したい場合は、JSONを習得しておくとスムーズに対応できる可能性がある

JSONとは

JSONは「JavaScript Object Notation」の略称です。Object Notationとは、人が容易に読み書きしてデータを簡単に扱えるように構造化した記述方法であり、フォーマットとして構造化します。JSONは、JavaScriptのオブジェクト表記法を由来としたデータの記述方式のことです。

ここではJSONはJavaScriptとどのような関係があるのか、ほかのデータ記述形式との違いはどのようなものか、などについて説明します。

JSONとJavaScriptの関係

プログラミング言語であるJavaScriptの動作において、JSONのオブジェクトはJavaでいうインスタンスと同じように扱えます。もともとは、JavaScriptのオブジェクトを記述するためのデータ構造でしたが、JavaScriptでデータを扱う上で便利に利用できることから、現在ではバックエンドと通信する際のフォーマットとして広く利用されています。

ほかのフォーマットとの違い

JSONと類似するデータの記述形式に、XMLやCSVがあります。JSONは比較的新しいデータ記述形式なので、以前はXMLやCSVのほうが一般的でした。古くからあるプロジェクトでは現在もXMLやCSVは普通に使われています。では、JSONとXML、CSVは何が異なるのでしょうか。

JSONとXMLの違い

XMLは、JSONと同様にデータ交換に利用されますが、表記法が異なります。XMLは、拡張可能なマークアップ言語を意味します。マークアップ言語とは、もともとある文章にマークを付与し、構造を明確にした形式の言語です。XMLは3つの中でも古くからあり、汎用機の案件などで使用されている傾向があります。言語としては、COBOLとXMLを組み合わせて使用されることが多いです。

JSONとCSVの違い

CSVもJSON同様にデータ交換で利用されますが、こちらも表記法が異なります。CSVは、Excelをはじめとする表計算ソフトなどで古くから使用されており、データをカンマで区切って記述します。プログラミングの経験がなくても、CSVファイルという呼び方には聞きなじみのある方が多いでしょう。シンプルな形式で直感的な理解がしやすいといわれています。

関連記事:JavaScriptとは?基本や特徴を初心者にもわかりやすく解説

JSONの特徴

名前にJavaScriptと入っていることから分かるように、JSONはJavaScriptでの利用を前提に開発されたテキストフォーマットです。特定のプログラミング言語に依存しない便利なフォーマットとして、JavaScriptだけではなくC言語やJava、Pythonなど多くのプログラミング言語で活用されています。

JSONの主な特徴について解説します。

データ量が少ない

JSONは、XMLと比較すると記述量が少なく、データ容量も少ない傾向があります。テキストデータのため、1ファイルあたりの容量では大差はありませんが、通信回数が増えると無視できないデータ容量となります。大規模なプロジェクトではファイルの数も増えていく傾向があるので、データ量が少ないことはメリットになります。

シンプルな表記形式

JSONはJavaScriptのオブジェクト構文に由来しているため、XMLよりもシンプルな表記形式となっており、可読性に優れています。可読性に優れているということはファイルを作成した人以外も読むことができ、また改修のときにも便利です。プロジェクトによってはJSONファイルを頻繁に書き換えるので、可読性の高さは大きなメリットです。

言語に依存しない

異なるプログラミング言語間では、通常、互換性の問題からデータの交換は行えません。テキストベースであるJSONを利用することで、データのやりとりが可能となります。複数のプログラミング言語を使用して開発している場合や、既存の言語から別の言語に書き換えているときなどに特に便利になります。

自由度が高い

JSONは、複数のデータを組み合わせた複合データを記述することが可能です。CSVで同様のことを行うと、属性との関連性が分からなくなり、可読性が低下してしまいます。また、XMLでは記述量が増え、管理がしにくくなります。JSONはXMLとCSVの弱点を意識して開発されているのかもしれません。プログラミング言語も後から誕生したものは既存のものの弱点をカバーする仕様になっていることが多いです。

JSONのメリット

JSONは、使用されているモダン言語のほとんどで読み書き用のライブラリが用意されています。あるデータフォーマットの仕様がどれだけ優れていても、読み書きに必要なサードパーティのライブラリなどを導入しなければならない場合、採用するハードルは上がるでしょう。

JSONは、ほとんどの言語で何もインストールする必要がなく、JSON関係の標準ライブラリを読み込むだけで読み書きができるフォーマットです。

ほかにも、JSONには以下のようなメリットがあります。

環境とバージョン依存の問題が少ない

JSONは安定した、堅牢なフォーマットです。CSVなどの単純な改行区切りやタブ区切りなどの古いフォーマットでは、文字コードの違いによる環境依存のデータ互換性の問題が起こることがあります。また、Excelなどのバイナリーファイル形式の場合は、ソフトウェアのバージョン違いによる非互換性問題がたびたび生じます。

JSONには、これらの問題が発生しにくいメリットがあります。JavaScript構文をベースとしたデータ形式であり、これまでにフォーマットが変更されたことはありません。

構造化したままデータベースに格納できる

JSONは二次元配列にも対応できるフォーマットです。Web開発を行う際には、データの個数が可変になることがあります。例えば、ネットショップで商品を販売する際、商品によってオプションを変えたり、すべてのオプションのカラムを用意したりすることは現実的ではありません。

配列として1つのカラムにすべてのオプション情報を入れる場合、JSON形式は便利です。JSON形式のフォーマットを文字列として扱い、データベースに保存します。その後、データベースからデータを取得して、JSONデータのデコードを行います。JSONを使用することで、二次元配列に対応でき、よりスマートな開発を実現できるでしょう。

テキストベースで軽い

これまで、ネットワーク通信のフォーマットではXMLが使用されていました。しかし、XMLはタグを利用するために、同じ値で表現する場合でもJSONよりテキスト記述量が多くなり、データ通信量が増加してしまう欠点があります。JSONはテキストの記述量が少ないため、高速な通信を求められる場合に有効です。

JavaScriptとの相性が良い

JSONの人気が高まっている理由の一つに、ReactをはじめとしたVueなどのフロントエンド技術の普及があります。これらのフロントエンドのフレームワークは、JavaScriptなどの言語の開発で使用されます。

JSONは、JavaScriptで扱いやすいフォーマットです。データ通信におけるブラウザ内でのデータ保持や、データフォーマットの両方に適しています。サーバーからJSON形式でデータを受け取るだけで、そのデータをそのまま利用できます

JSON関係のツール類が豊富

JSONは幅広く使用されているフォーマットであるため、サードパーティのライブラリやツール類が多く存在します。CSVやExcelファイルなどのほかのフォーマットからJSONへ変換するツールやJSON整形ツールなど、定型的な一括変換を行うツールがGitHubなどで公開されており、自らプログラムを書いて処理を行う必要がありません。

ツール類がなくても使用しやすいJSONですが、これらの豊富なサードパーティツールを活用することで、より簡単にデータを扱うことが可能です。

JSONを使用する際の注意点

JSONは利便性が高く幅広く使用されていますが、注意点もあります。デメリットとも言い換えられるでしょう。特に複雑な構造になりやすい点や、コメントが入れられない分別の方法で情報共有すべき点などは対策しておく必要があります。

複雑な構造になりやすい

JSONはテキストベースで自由度の高いデータを簡単に作成できます。しかし、柔軟なデータ構造を作成できる分、複雑な構造も生まれやすくなる点には注意が必要です。JSONでは、二次元配列なども使用できます。

データの中にオブジェクトや配列を使用すると、プログラミング言語からの読み込み時に、入れ子や繰り返し処理のデータを読み込む回数が増え、処理の数が増えます。この影響によって、処理が重くなったり、処理時間が長くなったりすることがあります。

表記の形式が厳密に決まっている

JSONは自由度の高いデータを作成でき、記述の幅が広いのですが、表記の形式自体は厳密に決まっています。表記の形式を守った上で、自由度の高い記述ができるということです。

表記の形式が厳しいことはバグを防ぐ上では有効なのですが、ちょっとしたミスで読み込みができない、そして原因に気づかず改修に時間がかかってしまう、といった問題も起こる場合があります。

コメントを挿入できない

JSONはコメントの挿入ができません。コメントの挿入ができないことは、複数人で開発をしている場合にデメリットになりえるでしょう。JSONは可読性が高いためコメントがなくても処理の内容を把握しやすいのですが、慣れていない人のために別途JSONの内容を日本語で説明した資料や、個別での説明などが必要になるかもしれません。

JSONの文法

JSONの簡単な文法を紹介します。実際に文法を見ていくと、JSONがシンプルだということが分かりやすいでしょう。また、XMLやCSVと比較してみたい場合は、「JSONとXMLの違い」「JSONとCSVの違い」の見出しを参照してください。

それではJSONのフォーマットやデータ型について紹介していきます。

フォーマット

JSONのフォーマットは以下のような形です。

{
“項目名1”: 値1,
“項目名2”: 値2
.
.
}

  • ・項目名と値のペアで記述

    ・項目名はダブルクォーテーションで囲む

    ・複数のペアを指定する場合はカンマで区切る

    ・全体を{}または[]で囲む

JSONでは項目名と値をペアで指定し、項目名と値の区切りには「:(コロン)」を使います。項目名はダブルクォーテーションで囲みます。シングルクォーテーションは使用できません。

以下はサンプルです。

{
“total”: 3,
“users”: [{
“name”: “`佐藤”,
“age”: 22
}, {
“name”: “`鈴木”,
“age”: 19
}, {
“name”: “`田中”,
“age”: 20
}]
}

この記述では、3名のユーザー情報を保有しています。ユーザーの情報はnameとageです。これらの情報がusersという配列に格納されており、ユーザー数がtotalに格納されています。

JSONが対応しているデータ型

JSONは以下のデータ型に対応しています。

  • ・文字列

    ・数値

    ・Bool値

    ・オブジェクト

    ・配列

    ・null

文字列

文字列はダブルクォーテーション、バックスラッシュ以外の文字列であれば何でも使用できます。

{“name”: “suzuki”}

数値

数値はダブルクォーテーションで囲む必要はありません。ダブルクォーテーションで囲むと文字列の扱いとなるため注意しましょう。

{“id”, 0}

Bool値

bool値の指定が可能です。数値と同じく、ダブルクォーテーションは必要ありません。

{“a” : true, “b” : false}

オブジェクト

オブジェクトの中にオブジェクトを入れることができます。これをネストといいます。

{
“id” : 1,
“name” : “suzuki”,
“attribute” : {
“gender” : “male”,
“phone_number” : “xxxxxxxxxxx”,
“birth” : “2020/01/01”
}
}

配列

オブジェクトの場合は{}を使いますが、配列の場合は[]を使用します。配列内の要素はカンマで区切り、複数入力します。

{
“id”: 1,
“name”: “suzuki”,
“result”: [
89,
90,
23,
56,
54
]
}

null

nullは小文字で指定します。

{“id” : null}

JSONの使用例

JSONは実際どのような用途で使用されるのか、使用例を紹介します。JSONファイルを作成したり、JSON形式に変換したりするメリットやタイミングがよく分からない場合は、以下の例を把握することでイメージしやすくなるかもしれません。

ユーザー生成データの一時保存

JavaScript上で、JSONオブジェクトはインスタンスのような扱いができます。そのため、保持する必要のあるデータや、ユーザーが入力した情報を一時的に保管できます。慣れると簡易的に扱えるので、必要なときに作成し、不要になったら削除する使い方をするケースが多いでしょう。サンプルとして一ファイルだけ残しておいて、ほかの人が参考にして作りやすいようにしておく場合などもあるかもしれません。

汎用的データの保存フォーマット

JSONは、プログラミングにおける外部保存フォーマットとして非常に便利な形式です。JSON自体がJavaScriptのオブジェクト型をベースにしていることもあり、言語によってはオブジェクト型・辞書型・連想配列などのデータをほぼそのままの形で保存できます。Web開発でよく使用されているPHPにも、配列をJSON形式に変換するメソッドが存在します。

APIサーバーからの応答形式

APIサーバーに接続し、何らかの情報が返答されるときは、JSON形式で返答されるのが一般的です。JavaScriptでAjax通信を利用して、サーバーへGET/POSTする際にJSON形式を使用しますが、ほかのプログラミング言語で接続する際にも基本的にはJSONを使用します。

GETで取得したJSONデータは、各言語に用意されたJSONライブラリやモジュールでパースし、各言語標準のデータ型に変換した上で内容を読み込みます。POSTについても同様です。なお、APIサーバーへ空の接続をするだけであれば必要ありませんが、データのやりとりを行う場合はJSONを扱えなければいけません。

JSONエディターの代表例

JSONはメモ帳のような簡易的なテキストツールへのべた書きや、普段プログラミングに使用しているようなエディターを使用して書くこともできます。しかしJSON専用のエディターもあり、専用エディターだとデータ入力形式の指定や自動的にフォーマットに合わせた形に記述できたりするので便利です。JSONエディターの代表例としては以下が挙げられます。


  • ・JSON Editor

    ・JSON Editor Online


「JSON Editor」は端末にインストールして使用するツールで、「JSON Editor Online」はオンライン上で使用するツールです。

JSONを習得して転職先の幅を広げる

JSONは、環境依存しないテキストベースのデータ交換フォーマットです。多くのプログラミング言語から利用できるようにライブラリが整理されており、活用の場を広げています。

JSONはテキストのため軽量で、どのような環境でも利用しやすい点が大きな特徴です。テキストエディタさえあればデータの作成・修正ができ、特別なソフトウェアを用意する必要はありません。

また、記述方法はシンプルで、誰にでも扱いやすい構造です。経験が浅い開発者にとっても分かりやすく、学習コストを抑えられます。データの作成・保守・メンテナンスにかかるコストも、ほかの言語に比べて少ないメリットがあります。

Web開発において、JSONは欠かせない技術の一つです。どのようなプログラミング言語を扱う際も必要となってくるため、ぜひ習得して転職先の幅を広げましょう。

JSONに関するよくある質問

JSONに関するよくある質問と回答を紹介します。JSONファイルの用途やメリットを把握しておくことで、自分が勉強すべきか判断しやすいでしょう。また基本的にJSONは単体で使用するものではないので、JSONについて知ることでほかのプログラミングスキルなどとどのように組み合わせるかも分かってきます。

Q1.JSONとは何ですか?

JSONとは、JavaScript Object Notation の略です。データ形式の一種で、JavaScriptで作られています。もともとはJavaScriptのオブジェクトを記述するためのデータ構造でしたが、フロントエンドとサーバーサイドをつなぐデータ構造として広く使用されるようになりました。

Q2.JSONファイルは何に使いますか?

JSONファイルはデータを保存するための形式として使用されます。JSONファイルで保存したデータは、サーバーサイドでのデータ処理や、サーバーサイドからフロントエンドにデータを渡して表示する際などに使用されます。

Q3.JSONのメリットは何ですか?

JSONのメリットには、可読性が高い、軽量で処理が高速、コーディングが少なく済む、多くの開発で使用されているので汎用性が高い、といったものがあります。またJSONに関する情報や開発を便利にするツールなども豊富なので、いろいろな点で扱いやすいです。

まとめ

JSONとはJavaScript Object Notationの略で、JavaScriptで作られているデータ形式です。サーバーサイドでの処理や、フロントエンドに表示するデータの保存に使用されます。JSONはXMLやCSVよりも新しいデータ形式で、可読性、処理速度、コーディングの少なさ、といった点でメリットがあります。

JSONはプログラミング言語ではなく、JSON単体で開発を行うことはできません。そのため、JavaScriptやサーバーサイドのプログラミング言語スキルとあわせてJSONのスキルも身につければ開発に役立つでしょう。

ITエンジニアの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。

「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。

「個別相談会」に申し込む

転職支援サービスに申し込む
※転職活動を強制することはございません。

レバテックキャリアのサービスについて

この記事の監修

レバテックキャリア編集部

レバテックキャリアは、IT/Web業界のエンジニア・クリエイター向けに特化した転職エージェントです。当メディアでは、エンジニア・クリエイターの転職に役立つノウハウから、日々のスキルアップや業務に活かせる情報まで、幅広いコンテンツを発信しています。

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

関連する記事

人気の求人特集

内定率が高い

JavaScriptの求人・転職一覧

今もらっている年収は高い?低い?

簡単60秒 エンジニア・クリエイター専門 年収診断 無料診断START ×

年収アップをご希望の方へ

簡単!年収診断

現在の市場価値や
年収UPの実現方法がわかる!

現在の職種はどちらですか?