JSONとは?
JSONとは「JavaScript Object Notation」の略で、データ記述言語の1つです。読み方は「ジェイソン」です。
JSONはテキスト形式で表記されるので、簡単にデータ交換ができます。JavaScriptで定義されているオブジェクト表記法ではありますが、主要なプログラム言語で利用されています。JSONの仕様は、RFCおよびIETFの標準規格です。
JSONの特徴は?
JSONの特徴は、表記がシンプルであることです。第一に、表記がテキスト形式なのでフォーマットが読みやすいことが挙げられます。さらにデータ量が少ないため、処理を軽くすることができます。以上のことから、JavaScriptに限らず言語に依存しないデータ交換が可能です。
その他のデータ交換の方式には、XMLを用いる方法もあります。XMLは「Extensible Markup Language」の略で、マークアップ言語の1つです。XMLではユーザが定義したタグを用いてデータ交換を行います。そのため構文理解が必要で、人間が直接読み取ることは簡単ではありません。
上記の理由により、ちょっとしたデータ交換には初心者でも分かりやすいJSONがよく使われています。
ぜひ『マイナビIT エージェント』をご活用ください!
JSONの基本フォーマット
JSONのフォーマットは簡単なため、初心者でもすぐに覚えられます。基本的にはキー(名前)とバリュー(値)のペアで記述していきます。
具体的には、以下の表記形式に従い記述します。
・表記形式:基本規則 { “名前”: 値 } { “名前”: 値 , “名前”: 値 } { “名前”: 値 , “名前”: 値 , “名前”: 値 }
基本規則についてもう少し説明します。
・キー(名前)とバリュー(値)のペア データは名前と値のペアで記述します。 名前と文字列の値はそれぞれ”(ダブルクォーテーション)で括ります。 ’(シングルクォーテーション)は使用できません。
記述規則には以下の規定があります。
・{}(波カッコ)と:(コロン)の利用 データの最初と最後は{}(波カッコ)で括ります。 名前と値の間に:(コロン)を入れます。
・名前と値のペアの間に,(カンマ)を利用 名前と値のペアが複数ある場合は、名前と値のペアの間に,(カンマ)を入れます。
・配列は[](角カッコ)で、ネストは{}(波カッコ)で記述 値を入れ子とする場合は配列表記とネスト表記が可能です。
【参考】:JSONの紹介
特殊文字の表記形式
以下の特殊文字は、エスケープ文字として\(バックスラッシュ)を先に入力し使用します。
・\”(ダブルクォーテーション)
・\\(バックスラッシュ)
・\/(スラッシュ)
・\b バックスペースを意味します。
・\r フォームフィードを意味します。
・\n ラインフィードを意味します。
・\r キャリッジリターンを意味します。
・\t タブを意味します。
・\uXXXX 16進数表記です。
対応しているデータ型
JSONは以下のデータ型に対応しています。
・文字列 ”(ダブルクォーテーション)で括った文字列で、特殊文字は\(バックスラッシュ)を先に付けます。
・数値 0から9の数字、符号、小数点、指数記号(Eとe)が使えます。 8進数と16進数は使えません。
・true、false 論理値で全て小文字で表記します。
・null ヌル値で全て小文字で表記します。
・オブジェクト JSONオブジェクトを{}(波カッコ)で入れ子にすることができます。
・配列 [](角カッコ)で括ることで、連続したデータ領域が割り当てられます。
以下の例は、スーパーの食材仕入れデータの使用例です。
使用例:
{
”Category”: [
{
“ID”:201,
“Name”: “Apple”,
“Cost”:88,
“Qty”:20
},
{
“ID”:202,
“Name”: “Orange”,
“Cost”:99,
“Qty”:50
},
{
“ID”:203,
“Name”: “Banana”,
“Cost”:85,
“Qty”:35
},
:
]
}
これまで学んだJSON表記形式を活用して、さらに項目や分類を整理することも容易にできます。
JSONファイルとは?
JSONファイルとは、JSONフォーマットで記述されたテキスト形式のファイルを指します。ファイルを使ったデータ交換に利用されており、ファイルの拡張子は.jsonです。
JSONファイルでは、フォーマットをテキストエディタやツールで作成していきます。WindowsのNotepad・MacOSのTextEdit、LinuxのVim等のテキストエディタでファイルの作成や修正が可能です。
高度なJSONの編集機能が必要な場合は、JSONに対応する作成ツール・エディタを使用します。JSONエディタとしては、Windows用ではNotepad++やJSONedit、MacOS用ではJaysonが有名です。こだわりがなければ、Windows・MacOS・Linuxで動作する統合開発環境(IDE)のVisual Studio Code(VSCode)が無償(無料)で利用できるのでおすすめです。
【参考】:Microsoft Visual Studio Code
各言語でのJSONファイルの作り方
JSONはプログラム言語に依存しないため、各種プログラム言語で利用できます。特に、JavaScript・Java・Python・PHPの利用度は高いです。JSONファイルをそういった方法で作るには、各プログラム言語で提供されているAPIを使用します。以下で、JavaScript・Java・Python・PHPを用いたJSONファイルの作り方を紹介します。
・JavaScript ファイルへの出力は、オブジェクトをJSON.stringify()でJSONデータ形式に変換し、writeFileSync()でファイルに出力します。ファイルの読み込みは、readFileSync()やreadFile()でファイルからJSONデータを読み込み、JSON.parse()でオブジェクトを復元します。
・Java Javaでは、JSONObjectクラスが利用できます。最初にimportでnet.sf.json.JSONObject、またはorg.json.JSONObjectのライブラリをインポートします。
ファイルへの出力は、データをJSONObject.put()でJSONデータ形式に変換し、JSONObject.write()でファイルに出力します。ファイルの読み込みは、readLine()でファイルからJSONデータを読み込み、JSONObject.get()でオブジェクトを復元します。
・Python PythonではJSON APIを用い、最初に”import json”でライブラリをインポートします。
ファイルへの出力は、 次にjson.dumps()でJSONデータ形式に変換し、writelines()でファイルに出力します。ファイルの読み込みは、readline()でファイルからJSONデータを読み込み、json.loads()でオブジェクトを復元します。
・PHP ファイルへの出力は、オブジェクトをjson_encode()でJSONデータ形式に変換し、fwrite()でファイルに出力します。ファイルの読み込みは、fread()やfgets()でファイルからJSONデータを読み込み、json_decode()でオブジェクトを復元します。
JSONが使われる場面
JSONの使い道としては、以下のような代表例があります。
▪ユーザーが生成したデータの一時保存 フロントエンドで動作するJavaScriptにおいて、ユーザーが入力した情報などを一時的に保存できます。
▪プログラミングにおけるデータ保存 JSONは文字列で保存できるため、プログラミングにおける外部保存フォーマットとして使われます。
▪APIによるシステム間のデータ転送 APIによってデータをやり取りする際、APIサーバーからはJSON形式で返答されるのが一般的です。
Web開発に携わりたいならJSONを習得しよう
JavaScriptがフロントエンドで普及するに伴って、JSONはバックエンドとの通信のために広く使われるようになっています。XMLなど他のフォーマットと比べて利便性が高いこともその理由の1つです。
そのため、Webアプリケーションの開発、特にフロントエンド開発において、JSONを扱うスキルは欠かせないものになっていると言えるでしょう。
JSONは言語に依存しないため転職にも有利
前述したように、JSONはさまざまなプログラミング言語で使えるデータ形式です。言語に依存しないため利用シーンは多く、転職の際にも汎用的なスキルとして評価されやすいです。フロントエンドエンジニアは転職によって年収がアップしやすい職種でもあるので、転職時の1つの武器として持っておくと良いでしょう。
フロントエンドエンジニアの年収は「マイナビエージェント職業別年収ランキング/職種図鑑」での平均年収は385万円(※2024年10月執筆時点)、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」から近い職種のエンジニア・プログラマを参考にすると、平均年収592.2万円と分かりました。
国税庁2020年発表の民間給与実態統計調査における民間企業平均年収は433万円なので、フロントエンドエンジニアは一般平均年収よりも、やや低めであることが分かります。
ただし、20代では平均313万円、30代では457万円と年収の上がり幅が大きく、転職やキャリアの積み重ねが年収に影響を与えていると考えられます。JSONを含め幅広いスキル、また高度なスキルを身につけることが年収アップの鍵と言えるでしょう。
【参考】:マイナビエージェント職業別年収ランキング/ マークアップエンジニア・フロントエンドエンジニア ※【平均年収 調査対象者】 2015年〜2016年末までの間にマイナビエージェントにご登録頂いた20代・30代の方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
JSON入門者におすすめの本
JSONは簡単で、初心者でも分かりやすいデータ交換フォーマットですが、じっくり学びたい場合は参考書を読むのも良いでしょう。JSONに特化した参考書は少ないですが、例えば以下の本は初心者でも学びやすい内容となっています。
Python+JSON データ活用の奥義
PythonにおけるJSONの使い方について掘り下げた1冊です。JSONの基礎から解説されており、初心者でも理解しやすいでしょう。活用例も豊富に紹介されており、プログラムのサンプルが数多く掲載されています。初級からのレベルアップにおすすめです。
▪著者:クジラ飛行机 ▪ページ数:480ページ ▪出版社:ソシム ▪発売日:2023/01/16
【参考】:Python+JSON データ活用の奥義
なお、JSONやその周辺のスキルを身につけ、キャリアアップを目指したいという方は、それらのスキルを使ってどのようにキャリアを歩むことができるか、転職エージェントに相談してシミュレーションするのもおすすめです。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
JSONを理解してデータ交換に活用しましょう
JSONはシンプルなフォーマットで、初心者でも分かりやすいことが特徴です。JSONフォーマットが理解できたらJSONファイルの作成や、WebサーバからJSONフォーマットでのデータ交換が可能になります。
JSONはさまざまな開発現場で使われている技術であるため、Web開発に携わりたいと考えている方はJSONを習得してから転職に挑むことをおすすめします。
そこでぜひご活用いただきたいのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向けの無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案致します。
アドバイザーは企業側の人事担当者と直接連携を取れますので、求人票に載っていない企業情報も確認することができます。残業時間や給与面など、働き方などをしっかり確認の上で応募企業を選んでいくのが良いでしょう。
・資格やプログラミングの勉強をしているけれど、企業が求めるレベルに達しているのかわからない ・スキルアップをして市場価値を上げていける企業の選び方を知りたい ・数多くあるITエンジニアの職種の中で、自分に向いている仕事は何か知りたい
こうした悩みを抱えていらっしゃる方は、まずは無料登録でキャリアカウンセリングをおすすめ致します。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから