コンテンツにスキップ

その他の言語

プログラムを作るときに使う「プログラミング言語」とは別に、データをやり取りするための形式を定めた言語があります。これをデータ記述言語(データ記述形式)と呼びます。

たとえば、ある会社の販売管理システムと在庫管理システムが別々のプログラミング言語で開発されているとします。このとき、両者の間で商品データをやり取りするには、どちらのシステムでも読み書きできる「共通の形式」が必要です。データ記述言語は、このような異なるプログラム間でのデータ交換を実現するための仕組みです。

代表的なデータ記述言語(形式)には、JSONCSVXML があります。以下では、それぞれの特徴を見ていきましょう。

JSON(ジェイソン)は、データをキーと値のペアで表現する軽量なデータ交換形式です。名前に「JavaScript」とついていますが、JavaScript以外のほとんどのプログラミング言語でも利用できます。

JSONでは、データを次のように記述します。

{
"name": "田中太郎",
"age": 25,
"department": "営業部"
}

この例では、"name" がキー(項目名)、"田中太郎" が値(データの中身)です。波括弧 {} でデータ全体を囲み、キーと値を : で結びます。

JSONの主な特徴は次のとおりです。

  • 軽量でシンプル: 記述ルールが少なく、データのサイズも小さくなります
  • 人間にも読みやすい: テキスト形式なので、目で見て内容を確認できます
  • Web APIで広く利用: インターネット上のサービス同士がデータをやり取りする際に、最も多く使われている形式です

たとえば、天気予報のWebサービスに「東京の今日の天気を教えて」とリクエストすると、JSONの形式で「晴れ、最高気温25度」といったデータが返ってきます。スマートフォンのアプリはこのJSONデータを受け取り、画面に天気情報を表示します。

試験で出るポイント

JSONは「キーと値のペアで表現する軽量なデータ交換形式」という特徴を押さえておきましょう。シラバスの用語例にも挙げられている重要な用語です。

CSV(シーエスブイ)は、データをコンマ(,)で区切って並べるテキスト形式です。「Comma Separated Values」の名前のとおり、値をコンマで分離(Separate)して記述します。

同じ社員データをCSVで表現すると、次のようになります。

name,age,department
田中太郎,25,営業部

1行目が項目名(ヘッダ)、2行目以降が実際のデータです。表計算ソフト(Excelなど)で開くと、コンマの位置でセルに分かれて表示されるため、表計算ソフトとの親和性が高いのが大きな特徴です。

CSVの主な特徴は次のとおりです。

  • 構造がとてもシンプル: コンマで区切るだけなので、誰でも簡単に作成・編集できます
  • ファイルサイズが小さい: 余分な記号がほとんどないため、大量データの保存に向いています
  • 表計算ソフトで直接開ける: ExcelやGoogleスプレッドシートなどで、そのまま表として扱えます

一方で、CSVにはデータの階層構造(入れ子のデータ)を表現しにくいという弱点があります。たとえば「社員の情報の中に、複数の資格情報を含める」といった複雑なデータ構造は、CSVでは扱いにくくなります。

XMLについては「マークアップ言語」のページで詳しく解説していますが、ここではデータ記述言語としての側面を簡単に紹介します。

XMLは、タグを使ってデータに意味づけを行う形式です。同じ社員データをXMLで表現すると、次のようになります。

<employee>
<name>田中太郎</name>
<age>25</age>
<department>営業部</department>
</employee>

<name> のような開始タグと </name> のような終了タグでデータを囲むことで、「これは名前です」という意味を持たせます。タグを入れ子にすることで、階層構造(ツリー構造)のデータを表現できるのが強みです。

ただし、タグの記述が多くなるぶん、JSONやCSVに比べてファイルサイズが大きくなりやすく、記述もやや冗長になります。

3つの形式を比較すると、それぞれに得意・不得意があることがわかります。

項目JSONCSVXML
形式キーと値のペアコンマ区切りタグで囲む
可読性読みやすい読みやすいやや読みにくい
データサイズ小さい最も小さい大きくなりがち
階層構造表現できる表現しにくい表現できる
主な用途Web API、設定ファイルデータの一括入出力、表計算設定ファイル、文書構造の記述

同じ「田中太郎さん、25歳、営業部」というデータでも、形式によって書き方が大きく異なります。どの形式を選ぶかは、用途やデータの複雑さによって決まります。

試験で出るポイント

過去問では「CSV・XML・JSONの違い」を問う問題が出題されています。それぞれの特徴(CSVはコンマ区切り、JSONはキーと値のペア、XMLはタグで囲む)を区別できるようにしておきましょう。IoTデバイスが収集したデータの送受信形式として問われることもあります。

アプリで問題を解こう!