添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

JSONの特徴

JSONの特徴としてまず挙げられるのが軽量であることです。タグなどを含まないコンパクトなテキスト形式であるため、データ転送の効率が高く、データを高速で通信する必要がある場合にも有用です。

また、シンプルで可読性が高い点も特徴のひとつです。人にもコンピュータにも理解しやすい形式で書かれていて柔軟性も高いため、複雑なデータ構造も表現し、直感的に把握できます。

これらの特徴に加え多くのプログラミング言語でサポートされているため、現代のWeb開発やAPI設計において欠かせないフォーマットとして幅広く活用されています。

JSONの主な用途

JSONは軽量で扱いやすいデータ交換フォーマットとして幅広いシーンで使われますが、その用途は主に2つに分けられます。具体的な使用例は後述しますが、ここではJSONの主な用途について説明します。

1.APIにおけるデータの受け渡し

JSONは、汎用性が高いことから異なるシステムやプログラミング言語の間でのデータのやり取りに活用されます。APIサーバーを通してデータを転送する際の標準として使用されている言語です。

2.データの保存

JSONは、データ保存の形式としても使用されます。オブジェクト型や辞書型など、言語によってはそのままの保存が可能です。また、PythonにはJSONフォーマットを辞書型やCSVなどのフォーマットに変換する機能もあります。

JSONとXML・CSVとの違い

近年、データのやり取りはJSONですることが多いですが、JSONが登場する前まではXMLというデータ構造が主に使われていました。
XMLはHTMLの記法を元にしたデータ定義方法で、データ定義言語と呼ばれています。
HTMLと同じようにタグを使ってデータの構造を定義し、柔軟に記述できるので(XMLよりも前に使われていた)CSVよりも複雑な構造も扱えました。しかし、その分人間にとって直感的には理解し難いのが難点でした。

XMLの例

<?xml version="1.0" encoding="utf-8"?>
<data>
<item>
<id>1</id>
<name>tanaka</name>
</item>
<item>
<id>2</id>
<name>nakata</name>
</item>
</data>

CSVの例

id,name
1,tanaka
2,nakata

一方、JSONはJavaScriptのオブジェクト記法で定義するので、慣れている人にとっては非常に分かりやすく感じます。

また、例えばPythonからJSONデータを送り、JavaScriptでそのままオブジェクトとして扱う、といった使い方が可能です。 XMLだとXML構文を解析する必要がでてくるので、プログラムのパフォーマンスが低下するというデメリットもあります。

JSONの例

最近のWeb開発にはJavaScriptが必ず必要になりました。この環境の変化もJSONが広く使われるようになった要因と言えるでしょう。

JSONの書き方

次に、JSONの書き方を見ていきましょう。
JavaScriptでオブジェクトを扱ったことがあるならそこまで複雑ではありませんし、使ったことがなくても今後JavaScriptを操作する上で役に立つので覚えておきましょう。

基本の書き方

JSONは {} の中にキーと値をコロンで区切って記述します。 キーは必ずダブルクォーテーションで囲む必要があり、シングルクォーテーションだとエラーになります。

JSONの使用例

最後に実際にJavaScript内でJSONを使ってみましょう。

JSON文字列をオブジェクトに変換したり、逆にオブジェクトをJSON文字列に再変換したりしてみます。 まずはJSON文字列→オブジェクトから見ていきましょう。

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

json_strがJSON文字列です。これをJSON.parse()に渡すことでオブジェクトに変換されます。あとは通常のオブジェクトの扱いと同じで、ドットで繋げながら取得したい要素にアクセスしています。次にオブジェクト→JSON文字列への変換を見ていきましょう。

JavaScriptコード

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

objはJavaScriptのオブジェクトです。これをJSON.stringify()に渡してJSON文字列に変換しています。typeofで型を見てみると、stringになっているのが分かります。
普段JavaScript内で使用するときはオブジェクトで良いですが、サーバサイドとデータのやり取りをしたい場合は文字列にして送ると非常に便利です。

JavaScriptコード

構文規則が厳密に決まっている

JSONは、非常に厳密な構文規則を持っています。

キーや値をダブルクオーテーションではなくシングルクオーテーションで囲んでいる、末尾のカンマが抜けているなど、表記上のわずかな誤りもエラーにつながります。正常にデータを読み込ませるためにはルールに確実に則った構文を記述する必要があります。

構文にミスがないか確認するために、アプリケーションやエディタ内の構文チェック機能を活用するとよいでしょう。

データ構造が複雑になりやすい

JSONは高い自由度でデータを作成できる点がメリットの一つですが、その分複雑な構造になりやすい点にも注意が必要です。入れ子や配列を使ってデータを複雑化すればするほどデータ処理の負荷が増え、処理時間が長くなる恐れがあります。

データ構造を複雑化しすぎないためには、データ構造を適切に設計し、可能な限りフラットに保つようにしましょう。

コメントの追加ができない

JSONでは、ファイル内に直接コメントを記載することができません。

可読性が高いフォーマットであっても、何の説明もされずJSONのデータを受け取ると、データの内容を理解するのに時間がかかってしまいます。そのため複数のメンバー間でやり取りをする場合は、データについての説明を別の方法で行う必要があります。

JSONについて以下の通り解説してきました。
・JSONの特徴
・JSONとXMLの違い
・JSONの書き方
・JSONが対応しているデータ型
・JSONの使用例

プログラミングをしていれば必ず出会うデータフォーマット(JSON、XML、CSV、…)について、この機会に勉強してみてもいいかもしれませんね!

-----参考情報-----
■TV出演動画:ええじゃない課Biz(2022/05/29 放送 TOKYO MX)
アンタッチャブル柴田さん、アルコ&ピースさんがレギュラーのビジネス情報番組「ええじゃない課Biz」にて、プログラミングスキル判定サービス「 TOPSIC 」と企業・学校対抗プログラミングコンテスト「 PG BATTLE 」のご紹介をさせていただきました。