JSON,XML,CSVについて...
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