web100tips’s blog

webエンジニアが知っておくべきこと100を1日1投稿します

JSONとXMLの違いと用途

 

JSONXMLの違いと用途を徹底比較

こんにちは、ぴょんだいです。

Web開発をしていると必ず出会う「JSON」と「XML」。データのやりとりや設定ファイルとして広く使われていますが、両者には明確な違いがあり、それぞれ適した用途があります。

この記事では、JSONXMLの特徴・違い・用途を30分で理解できるボリュームで整理し、実際の開発現場で使い分けるための判断基準も紹介します。


1. JSONXMLとは?

1-1. JSONJavaScript Object Notation)

軽量なデータ記述フォーマット。JavaScriptのオブジェクト表記に由来し、現在は言語を問わず広くサポートされています。

{
  "name": "ぴょんだい",
  "age": 30,
  "skills": ["HTML", "CSS", "JavaScript"]
}

1-2. XML(eXtensible Markup Language)

タグベースのマークアップ言語。文書構造の定義ができ、厳密なバリデーションやスキーマ定義が可能です。


<user>
  <name>ぴょんだい</name>
  <age>30</age>
  <skills>
    <skill>HTML</skill>
    <skill>CSS</skill>
    <skill>JavaScript</skill>
  </skills>
</user>
 

2. JSONXMLの主な違い

項目 JSON XML
可読性 高い(シンプルな構文) やや低い(冗長なタグ構造)
データサイズ 軽量 重い(タグ分のオーバーヘッドあり)
解析速度 高速(パースしやすい) 遅め(DOMパーサが必要)
スキーマ定義 弱い(最近はJSON Schemaも) 強力(XSDによるバリデーション)
コメント 非対応 対応(<!-- コメント -->
拡張性 限定的 高い(カスタムタグ、名前空間など)
対応分野 Web API、フロントエンド 文書、SOAP、設定ファイル

3. 用途別の使い分け

3-1. Web API

近年のREST APIやGraphQLなどではJSONが主流です。軽量で扱いやすく、JavaScriptとの親和性も高いです。

3-2. SOAPベースのサービス

SOAP(Simple Object Access Protocol)ではXMLが必須です。厳密なデータ構造やメッセージ検証が必要な金融・保険などの業界で多く採用されています。

3-3. 設定ファイル

- JSON:Node.js(package.json)などモダンな環境で採用。
- XML:古いJavaアプリ(web.xmlなど)ではXMLが一般的。

3-4. データ移行・変換

両者は変換可能(ツール多数あり)。ただし、XMLJSON変換では属性と要素の扱いが課題になることもあります。


4. JSONの利点と制約

  • 扱いやすく、ほとんどの言語でサポート
  • 構造が直感的で、APIとの連携に最適
  • 欠点:コメント不可、形式が柔軟すぎて厳密な検証がしづらい

5. XMLの利点と制約

  • 複雑な文書構造、スキーマによる厳密な検証が可能
  • 名前空間XSLTなど高機能
  • 欠点:冗長でパースが重い、学習コストが高い

6. セキュリティ面の考慮

どちらもパーサの脆弱性に注意が必要です。

  • JSON:eval使用は避ける(JSON.parseを使う)
  • XML:XXE(XML External Entity)攻撃への対策が必須

7. 選定の目安

  • 軽量・簡易なAPIJSON
  • 厳密な構造・バリデーションが必要 → XML
  • 外部サービスの仕様が固定 → 仕様に従う

まとめ

  • JSONは軽量・高速でWeb APIに最適
  • XMLは厳密性と拡張性が求められる場面に強い
  • それぞれに適した用途と利点・制約があるため、目的に応じて選定しよう

どちらの形式も現代のWeb開発では欠かせません。特徴をしっかり理解して、使いどころを見極めていきましょう。

ぴょんだいでした。