👋

JSON,XML,CSVについて...

2023/05/09に公開

JSON,XML,CSVについて

  • ファイルフォーマット(データ形式)
  • データ形式とは、データを扱うルールのこと。
    CSV, XML, JSON. というデータ形式があり、テキストを記述するためのデータ形式なので、
    そのためそれぞれ「CSV形式」「XML形式」「JSON形式」と呼ばれるのが一般的。

データ形式とは

データを表現するための構文、規則、ルールを指す。
データ形式には、テキストベースの形式バイナリベースの形式があります。
その中でも今日の題材"JSON,XML,CSV"はテキストベースです。

テキストベース形式とバイナリベース形式を詳しく.

1. テキストベースのデータ形式
テキストで表現されたデータを使用。
この形式は、人間が読み書きしやすく、データの解析に便利

代表的なテキストベースのデータ形式

  • CSV (Comma Separated Values)
  • XML (Extensible Markup Language)
  • JSON (JavaScript Object Notation)
  • YAML (YAML Ain't Markup Language)

2. バイナリベースのデータ形式
データをビットの列として表現する。
これらの形式は、コンピュータが扱いやすく、処理速度が速いため、ゲーム、画像、音声、動画などのマルチメディアデータの表現に適している。

代表的なテキストベースのデータ形式

  • JPEG (Joint Photographic Experts Group)
  • GIF (Graphics Interchange Format)
  • MP3 (MPEG Audio Layer 3)
  • MPEG (Moving Picture Experts Group)
データ形式 形式 特徴
CSV テキスト カンマで区切ったテキストファイル形式。
スプレッドシートやデータベースでよく使用される。
XML テキスト タグと属性を使用してデータをマークアップするテキストベースの形式。
データとドキュメントの両方を表現するために使用される。
JSON テキスト JavaScriptのオブジェクトリテラル表記から派生したデータフォーマット。
WebアプリケーションやWeb APIでよく使用される。
YAML テキスト インデントと改行を使用してデータを表現するテキストベースの形式。
構成ファイルや設定ファイルなどでよく使用される。
JPEG バイナリ 静止画像の圧縮に使用される画像フォーマット。
GIF バイナリ 静止画像やアニメーションGIFの圧縮に使用される画像フォーマット。
MP3 バイナリ 音声の圧縮に使用される音声フォーマット。
MPEG バイナリ 動画の圧縮に使用される動画フォーマット。

■ JSONとは

  • JSONは"JavaScript Object Notation"の略称.
    JavaScriptのオブジェクトリテラル(オブジェクト表記法)の構文をベースにした
    データ形式(データフォーマット)の一種
    だ.
    (軽量のデータ交換フォーマット)

  • JSONは、オブジェクト、配列、文字列、数値、真偽値、null値などの
    基本的なデータ型をサポートしているし、特定の言語に依存しない(ほとんどの言語でサポート)ため
    非常に汎用性も高い.

■ JSONの 利用タイミング:APIサーバーからの応答形式

システム間のデータのやり取りを行いデータがレスポンスされる際など。

■ CSV形式とは

  • Comma Separated Valuesの略。 カンマ「,」で区切ったデータ形式
  • テキストファイルとして保存でき、非常にシンプルで人間にとっても理解しやすい.
    ただし、CSVはデータが単純な表形式に制限されるため、より複雑なデータに対応することができません。
id,genre
1,Japanese
2,Italian
3,Western

■ XML形式

  • Extensible Markup Languageの略。

Extensible Markup Language:拡張マークアップ言語

  • Extensible: 拡張

タグ(<〇〇></〇〇>)を使ったデータ形式。
HTMLと違ってタグ内(< >←この中)の記述は自由にすることが可。
XMLは、階層的な構造を持つことができ、データの種類や属性に対して意味を付けることができる。
これは、より複雑なデータに対応することができるという利点があるが、
XMLはタグや属性が多くなると、データが読みにくくなります。

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <item>
    <id>1</id>
    <genre>Japanese</genre>
  </item>
  <item>
    <id>2</id>
    <genre>Italian</genre>
  </item>
  <item>
    <id>3</id>
    <genre>Western</genre>
  </item>
</data>


最近のWebアプリケーションでは、

JSONやXMLの使用が増え、CSVはあまり使われなくなってきています。
(CSVは、データの表現力が限られており、解析や処理が手間がかかるため)

JSONとXMLの比較の絵を描いてみました!


JSON,XML,CSV:比較表

JSON,XML,CSV
JSON XML CSV
データ形式 テキスト テキスト テキスト
ファイル形式 .json .xml .csv
データ構造 オブジェクト、配列 ノード、属性 テーブル
可読性 高い 低い 低い
サポートされる言語 ほぼすべて ほぼすべて ほぼすべて
データボリューム 中程度から大量 中程度から大量 小〜中程度
データタイプのサポート 文字列、数値、真偽値、null 文字列、数値、真偽値、
null
文字列、数値
データ検証 JSONスキーマ DTD、XMLスキーマ なし
エンコード UTF-8 任意のエンコーディング 任意のエンコーディング
パーサー ほぼすべての言語に組み込み 多くの言語に組み込み ほぼすべての言語に組み込み
用途 Web API、データ交換 Web API、データ交換、
ドキュメント
データインポート、
エクスポート、
スプレッドシート
{"name": "John", "age": 30} <person>
<name>John</name><age>30</age>
</person>
name,age John,30 Jane,25

Discussion