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

最終更新日:2023年10月26日

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

この記事のまとめ

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

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

Jsonとは

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

JsonとJavaScriptの関係

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

XMLとの違い

XMLは、Jsonと同様にデータ交換に利用されますが、表記法が異なります。XMLは、拡張可能なマークアップ言語を意味します。マークアップ言語とは、もともとある文章にマークを付与し、構造を明らかにした形式の言語です。

CSVとの違い

CSVも同様にデータ交換で利用されますが、こちらも表記法が異なります。CSVはカンマ区切りを意味します。Excelをはじめとして、表計算ソフトなどで古くから使用されており、データをカンマで区切って記述します。

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

Jsonの特徴

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

データ量が少ない

Jsonは、XMLと比較して記述量が少なく、データ容量も少ない傾向があります。テキストデータのため、1ファイルあたりの容量では大差はありませんが、通信回数が増えると無視できないデータ容量となります。

シンプルな表記形式

JsonはJavaScriptのオブジェクト構文に由来しているため、XMLよりもシンプルな表記形式となっており、可読性に優れています

言語に依存しない

異なるプログラミング言語間では、通常、互換性の問題からデータの交換は行えません。テキストベースであるJsonを利用することで、データのやりとりが可能となります。

自由度が高い

Jsonは、複数のデータを組み合わせた複合データを記述することが可能です。CSVで同様のことを行うと、属性との関連性が見えなくなり、可読性が低下してしまいます。また、XMLでは記述量が増え、管理がしにくくなります。

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のフォーマットは以下のような形です。

{
“項目名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の使用例について解説します。JavaScriptから生まれたフォーマットであるため、主にWeb周りで使われていますが、それだけに留まりません。

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

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

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

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

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

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

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

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

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

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

この記事の監修

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

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

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

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

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

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

関連する記事

人気の求人特集

内定率が高い

JavaScriptの求人・転職一覧