生成AI研修
Part 1: IT リテラシー基礎

Chapter 6: データ形式の基礎

JSON / YAML / XML の読み方・書き方

6.1 構造化データとは

プログラムでは大量のデータをやり取りします。ただ文字を並べるだけでは、コンピュータが「どこからどこまでが1つのデータか」を判断できません。

そこで登場するのが構造化データです。構造化データとは、データに意味と構造(形)を持たせる書き方のルールです。

例えば、社員情報を「ただのテキスト」で書くとどうなるでしょうか。

山田太郎 30歳 東京都 営業部

これでは「30歳」が年齢なのか社員番号なのか、コンピュータにはわかりません。

構造化データでは、このように書きます。

{
  "name": "山田太郎",
  "age": 30,
  "address": "東京都",
  "department": "営業部"
}

name というキーに対応する値は山田太郎」という形で、データの意味(ラベル)がセットになっています。

この章では、開発現場で最も多く使われる3つの構造化データ形式を学びます。

形式特徴主な用途
JSONシンプルで機械が扱いやすいAPI通信、設定ファイル
YAML人間が読みやすい設定ファイル、CI/CD
XML柔軟で詳細な構造を表現できる古いシステム、SVGなど

6.2 JSON の読み方・書き方

JSON(JavaScript Object Notation) は、現在最もよく使われるデータ形式です。Webサービスのデータのやり取り(API)には、ほとんどの場合 JSON が使われています。

基本ルール

{
  "文字列": "ダブルクォートで囲む",
  "数値": 42,
  "小数": 3.14,
  "真偽値": true,
  "なし": null,
  "配列": [1, 2, 3],
  "オブジェクト": {
    "入れ子": "にできる"
  }
}

データ型一覧

書き方
文字列"...""山田太郎"
数値そのまま303.14
真偽値true / falsetrue
null(空)nullnull
配列[...]["リンゴ", "バナナ"]
オブジェクト{...}{"key": "value"}

実際の例:社員データ

{
  "employees": [
    {
      "id": 1,
      "name": "山田太郎",
      "age": 30,
      "department": "営業部",
      "skills": ["Excel", "PowerPoint"],
      "isManager": false
    },
    {
      "id": 2,
      "name": "鈴木花子",
      "age": 35,
      "department": "経理部",
      "skills": ["Excel", "SAP", "Python"],
      "isManager": true
    }
  ],
  "lastUpdated": "2024-01-15"
}

よくある JSON のミス

// NG: 末尾のカンマ(JSON では禁止)
{
  "name": "山田太郎",
  "age": 30,    ここのカンマが問題
}

// NG: シングルクォートの使用(JSON ではダブルクォートのみ)
{
  'name': '山田太郎' シングルクォートは NG
}

// NG: コメント(JSON ではコメントを書けない)
{
  "name": "山田太郎"  // これはコメントだが JSON では使えない
}

ターミナルでの操作

# JSON ファイルの内容を確認
cat data.json

# jq を使って整形して表示(見やすくなる)
cat data.json | jq .

# 特定のフィールドだけ取り出す
cat data.json | jq '.employees[0].name'
# 出力: "山田太郎"

6.3 YAML の読み方・書き方

YAML(YAML Ain't Markup Language) は、人間が読みやすいように設計されたデータ形式です。JSON と同じデータを表現できますが、括弧やカンマが少なく、スッキリしています。

JSON との比較

// JSON
{
  "name": "山田太郎",
  "age": 30,
  "skills": ["Excel", "Python"]
}
# YAML(同じデータ)
name: 山田太郎
age: 30
skills:
  - Excel
  - Python

YAMLの方がシンプルで読みやすいのがわかります。

基本ルール

# コメントは # で始める(JSON とは違い、コメントが書ける)

# キーと値はコロン + スペースで区切る
name: 山田太郎
age: 30

# 文字列のクォートは省略できる(必要な場合のみ使う)
message: "Hello, World!"    # スペースや特殊文字がある場合はクォート

# 配列(リスト)
fruits:
  - リンゴ
  - バナナ
  - ぶどう

# 入れ子のオブジェクト(インデントで表す)
address:
  prefecture: 東京都
  city: 渋谷区
  zipcode: "150-0001"   # 数字だけでも文字列にしたい場合はクォート

# 複数行のテキスト
description: |
  これは1行目です。
  これは2行目です。
  改行がそのまま保持されます。

重要:インデントはスペースのみ

YAML ではインデント(字下げ)が構造を表します。タブ(Tab キー)は使えません。スペース2つまたは4つを一貫して使いましょう。

# 正しい(スペース2つ)
parent:
  child: 

# 間違い(タブを使うとエラー)
parent:
	child: 値   ← タブ文字はNG

実際の例:GitHub Actions 設定ファイル

開発現場では、GitHub Actions(自動化ツール)の設定に YAML がよく使われます。

# .github/workflows/test.yml
name: テスト自動実行

on:
  push:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: リポジトリをチェックアウト
        uses: actions/checkout@v3

      - name: テストを実行
        run: npm test

6.4 XML の読み方

XML(Extensible Markup Language) は、HTMLに似た「タグ」でデータを囲む形式です。HTMLより古く、現在は新しいシステムでは JSON / YAML が好まれますが、古い業務システムや特定の分野ではまだよく使われています。

基本構造

<?xml version="1.0" encoding="UTF-8"?>
<employees>
  <employee>
    <id>1</id>
    <name>山田太郎</name>
    <age>30</age>
    <department>営業部</department>
    <skills>
      <skill>Excel</skill>
      <skill>PowerPoint</skill>
    </skills>
  </employee>
  <employee>
    <id>2</id>
    <name>鈴木花子</name>
    <age>35</age>
    <department>経理部</department>
  </employee>
</employees>

XML の特徴

  • 開始タグ <name>終了タグ </name> で値を囲む
  • タグは自分で自由に名前をつけられる
  • 属性(タグの中に情報を追加できる): <employee id="1" active="true">
  • 同じデータをJSON/YAMLより多い文字数で表現するため、冗長になりやすい

XML が使われる場面

  • SVG(Webで使うベクター画像形式)
  • SOAP API(古い企業システムのAPI通信)
  • RSS(ニュースフィードなど)
  • Officeファイル(.docx、.xlsx の内部形式は XML)

6.5 どこで使われているか

実際の開発で JSON をよく見る場面

1. API のレスポンス(天気APIの例)

{
  "city": "Tokyo",
  "temperature": 22,
  "unit": "celsius",
  "weather": "sunny",
  "forecast": [
    { "day": "明日", "temperature": 24, "weather": "cloudy" },
    { "day": "明後日", "temperature": 19, "weather": "rainy" }
  ]
}

2. package.json(プロジェクトの設定)

Node.js プロジェクトには必ず package.json があります。

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "社内業務改善ツール",
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.18.0"
  }
}

どの形式を使えばいいか


まとめ

3つのデータ形式の特徴を整理します。

形式人間の読みやすさファイルサイズコメント主な用途
JSON普通不可API、Node.js設定
YAML高い最小CI/CD、Docker設定
XML低い旧システム連携

重要なポイント

  • JSON と YAML は相互に変換できる(同じデータを別の書き方で表現するだけ)
  • 開発現場では JSON が最もよく使われる
  • 設定ファイルは YAML が増えている傾向がある
  • XML は「読まなければならない場面」はあるが、新規で選ぶことは少ない

これで Part 1:IT リテラシー基礎 のすべての章が完了です。次はPart 2「Web開発の基礎」で、実際に画面を作ることを学びます。お疲れさまでした!

On this page