JSONとは?XML・CSVとの違いやメリット、活用事例も紹介| フリーランスの案件・求人はPE-BANK

フリーランスの案件・求人TOP ITエンジニア独立ガイド キャリア JSONとは?XML・CSVとの違いやメリット、活用事例も紹介

ITエンジニアノウハウ将来転職

  • このエントリーをはてなブックマークに追加

更新日:

JSONはデータを扱いやすくすることに長けており、多くのエンジニアに利用されているため、利用されている場面を見かけたことがある方は多いでしょう。しかし、エンジニアやエンジニアを目指す方のなかには、「実際に扱ったことがあるものの、その詳細はよく知らない」という方もいるのではないでしょうか。

そこで本記事では、JSONの機能や使い方を解説するとともに、その魅力と注意点を紹介します。

point

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では、{}の間に項目名と値を、コロンで区切って記述するのが基本です。

以下では、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形式は、APIサーバーを介したシステム間のデータ転送における、デファクトスタンダードとなっています。

APIとは、プラットフォームが持つ汎用性の高い機能を、外部へ提供する仕組みのことです。APIによって、ソフトウェアの開発コストが大幅に削減されることもあり、現在多くのサービスで活用されています。

JSONはこのAPIサーバーの標準的な応答形式であり、データ転送をする際には必須といえるでしょう。

データの一時保存

JSONは、ユーザーが入力した情報やデータを、一時的に保存する際に利用できます。非テキスト型のデータを保存する場合は、シリアライズ(複数ある並列データの直列化)が必要ですが、直感的なデータの保存と読み込みが可能です。

JSON文字列とオブジェクトの変換

JSONはテキスト形式でデータを保持しますが、コンピュータにとってテキスト形式は扱いにくいものです。

そのため、プログラミング言語では、JSON文字列をオブジェクトに変換して利用することが多くなっています。逆に、プログラミング言語により処理を行なったオブジェクトは、JSON文字列に変換することも可能です。

JSON文字列から、コンピュータが扱えるオブジェクトへ変換するには、JSON.parseメソッドを利用します。そしてオブジェクトから、人が読みやすいJSON文字列へ変換するには、JSON.stringifyメソッドを利用します。

このように、JSON文字列とオブジェクトを用途に応じて相互変換して利用することは、効率的なデータ転送を可能にするでしょう。

JSONを利用する際の注意点


JSONを利用する際の注意点としては、以下の3点が挙げられます。

JavaScriptコーディングルールとの違い

JSONはJavaScriptをベースにしていますが、JavaScriptの表記方法のすべてがJSONで許されているわけではありません。

例えば、JavaScriptのコーディングルールに従い、シングルクォーテーションで括った文字列やキーを記述すると、JSONでは不正になります。

これは、普段からJavaScriptに親しんでいる技術者ほど、特に注意すべき点といえるでしょう。

バリデーションの実施

パーサー(コンパイル時に動く構文解析機能)によって、不正なJSONがどのように処理されるかは明確に決められていません。したがってバリデーション(データが正しいか確認すること)は、JSONを扱ううえで欠かせない作業といえます。

バリデーションを行なわなければ、データの整合性が喪失するだけでなく、予測困難なエラー発生により開発・メンテナンス作業が複雑化する可能性があるでしょう。

処理の効率性

JSONのデータ構造は柔軟であり、多くの配列やオブジェクトを含められます。

しかし、データ量や複雑さが増すと、処理の回数や処理時間が増加し、コンピュータの動作が重くなることが考えられるでしょう。したがって、JSONを効率的に利用するには、データ設計の最適化が必要だといえます。

まとめ:

JSONは、扱いやすく便利なデータ定義方法の一つです。開発・メンテナンスのコスト削減やデータの自由度の高さ、さまざまなプログラミング言語での利用が可能な点など、多くのメリットがあります。

使用に際していくつかの注意点はあるものの、学習しやすく開発利用へのハードルも低いため、今後も多くの現場で利用されるでしょう。JSONの習得により、より効率的なデータ処理を実現してはいかがでしょうか。

関連記事

TOP

案件情報一覧へ 【無料】60秒で会員登録する