← ブログに戻る

JSON ファイルの説明:構造と使用方法

.json ファイル、MIME タイプ、エンコーディング、実践的な例、セキュリティに関する完全なガイド。

Big JSON Team8 分で読めますbeginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

8 分読む

# JSON ファイルの説明:構造と使用方法

このガイドでは、JSON ファイルの詳細、拡張子、MIME タイプ、ファイルの作成方法、セキュリティについて説明します。

JSON ファイルとは

JSON ファイルは、JSON データを含むプレーンテキストファイルです。任意のテキストエディターで開いて読み書きができます。

基本事実

  • 拡張子 - .json
  • MIME タイプ - application/json
  • エンコーディング - UTF-8(推奨)
  • 可読性 - 人間が読める形式
  • 編集 - 任意のテキストエディターで編集可能

JSON ファイルの種類

1. 設定ファイル

package.json:Node.js プロジェクトの設定
{

"name": "my-app",

"version": "1.0.0",

"description": "My application",

"main": "index.js",

"scripts": {

"start": "node index.js",

"test": "jest"

},

"dependencies": {

"express": "^4.18.0"

}

}

tsconfig.json:TypeScript コンパイラー設定
{

"compilerOptions": {

"target": "ES2020",

"module": "commonjs",

"strict": true,

"outDir": "./dist"

}

}

2. データファイル

{

"users": [

{

"id": 1,

"name": "田中太郎",

"email": "tanaka@example.com"

},

{

"id": 2,

"name": "佐藤花子",

"email": "sato@example.com"

}

]

}

3. API レスポンス

{

"status": "success",

"data": {

"user": {

"id": 1,

"name": "田中太郎"

}

}

}

4. 言語ファイル(多言語対応)

{

"greeting": "こんにちは",

"farewell": "さようなら",

"welcome": "ようこそ"

}

5. マニフェストファイル

manifest.json:ウェブアプリの設定
{

"name": "マイアプリケーション",

"short_name": "MyApp",

"icons": [

{

"src": "/icon-192x192.png",

"sizes": "192x192",

"type": "image/png"

}

],

"start_url": "/"

}

JSON ファイルの拡張子

.json(標準)

最も一般的な拡張子。

config.json

data.json

users.json

.jsonl(JSON Lines)

1 行に 1 つの JSON オブジェクト。ログ処理に最適。

{"id": 1, "name": "田中"}

{"id": 2, "name": "佐藤"}

.jsonp(JSONP)

コールバック付きの JSON。

callback({"name": "田中"});

MIME タイプ

Web サーバーが JSON ファイルを提供する場合、正しい MIME タイプを設定する必要があります。

正しい MIME タイプ

application/json

設定方法

Apache (.htaccess):
AddType application/json .json
Nginx:
types {

application/json json;

}

Node.js/Express:
app.set('type', 'application/json');

res.setHeader('Content-Type', 'application/json');

ファイルエンコーディング

JSON ファイルは UTF-8 でエンコードする必要があります。

理由

  • 国際文字をサポート
  • 標準化
  • 互換性

エンコーディングを確認

Linux/Mac:
file -i data.json

# data.json: text/plain; charset=utf-8

Windows PowerShell:
[System.Text.Encoding]::GetEncoding([System.IO.File]::GetEncoding("data.json"))

エンコーディングの変換

Python を使用:
import codecs

with open('old.json', 'r', encoding='ISO-8859-1') as f:

content = f.read()

with open('new.json', 'w', encoding='utf-8') as f:

f.write(content)

JSON ファイルの構造

シンプルな構造

{

"id": 1,

"name": "田中太郎"

}

ネストされた構造

{

"user": {

"id": 1,

"name": "田中太郎",

"address": {

"city": "東京",

"country": "日本"

}

}

}

配列

{

"users": [

{"id": 1, "name": "田中太郎"},

{"id": 2, "name": "佐藤花子"}

]

}

JSON ファイルの作成

テキストエディターで作成

  • 新しいファイルを開く
  • JSON 形式でコンテンツを入力
  • ファイルを .json 拡張子で保存
  • 例:
    {
    

    "title": "私の最初の JSON ファイル",

    "created": "2026-01-16",

    "items": [1, 2, 3]

    }

    プログラムで作成

    Python:
    import json
    
    

    data = {

    "name": "田中太郎",

    "age": 30,

    "city": "東京"

    }

    with open('user.json', 'w', encoding='utf-8') as f:

    json.dump(data, f, indent=2, ensure_ascii=False)

    JavaScript:
    const data = {
    

    name: "田中太郎",

    age: 30,

    city: "東京"

    };

    const json = JSON.stringify(data, null, 2);

    const fs = require('fs');

    fs.writeFileSync('user.json', json, 'utf-8');

    JSON ファイルの読み込み

    ブラウザで開く

    最新のブラウザ(Chrome、Firefox)は JSON を自動的にフォーマットします:

    File → Open → file.json

    テキストエディターで開く

    VS Code、Sublime Text、メモ帳など任意のテディターで開けます。

    プログラムで読み込み

    Python:
    import json
    
    

    with open('user.json', 'r', encoding='utf-8') as f:

    data = json.load(f)

    print(data['name']) # 田中太郎

    JavaScript:
    const fs = require('fs');
    

    const data = JSON.parse(fs.readFileSync('user.json', 'utf-8'));

    console.log(data.name); // 田中太郎

    ファイルの検証と整形

    JSONLint で検証

    https://jsonlint.com
  • ファイルをアップロード
  • エラーが表示されたら修正
  • コマンドラインで検証

    Python:
    python3 -m json.tool data.json
    jq:
    jq . data.json

    セキュリティの考慮事項

    1. 敏感情報の保護

    ❌ しないこと:

    {
    

    "user": "admin",

    "password": "secret123"

    }

    ✅ すること:

    {
    

    "user": "admin",

    "password": "ハッシュ化された値"

    }

    2. API キーの保護

    環境変数を使用:

    // .env ファイル
    

    API_KEY=your_secret_key

    // コードで

    const apiKey = process.env.API_KEY;

    3. インジェクション攻撃の防止

    ユーザー入力を常に検証:

    function validateJson(input) {
    

    try {

    JSON.parse(input);

    return true;

    } catch (e) {

    return false;

    }

    }

    4. ファイルアクセス権限

    # Linux/Mac - 読み取り専用
    

    chmod 444 config.json

    # 所有者のみが読み書き

    chmod 600 secrets.json

    5. JSON インジェクション防止

    import json
    
    

    # ✗ 危険な連結

    json_string = '{"user": "' + user_input + '"}'

    # ✓ 安全なシリアライズ

    data = {'user': user_input}

    json_string = json.dumps(data)

    JSON ファイルの最適化

    ファイルサイズの削減

    最小化:
    jq -c . large.json > small.json
    圧縮:
    gzip -9 data.json
    

    # data.json → data.json.gz

    性能最適化

    大きなファイルの場合、JSON Lines を使用:

    {"id": 1, "name": "田中"}
    

    {"id": 2, "name": "佐藤"}

    ベストプラクティス

    1. 一貫したフォーマット

    {
    

    "userId": 1,

    "userName": "田中",

    "userAge": 30

    }

    2. ドキュメント化

    {
    

    "version": "1.0",

    "description": "ユーザー設定ファイル",

    "data": {}

    }

    3. バージョン管理

    {
    

    "schemaVersion": "1.0",

    "data": {}

    }

    4. バックアップを取る

    重要なファイルは常にバックアップ:

    cp config.json config.json.backup

    5. キーを説明

    意味のあるキー名を使用:

    ✅ わかりやすい:

    {
    

    "createdAt": "2026-01-16",

    "updatedAt": "2026-01-16"

    }

    ❌ わかりにくい:

    {
    

    "ca": "2026-01-16",

    "ua": "2026-01-16"

    }

    まとめ

    JSON ファイルは強力で柔軟なデータ形式です:

    • 汎用的 - あらゆる用途に使用
    • 標準的 - 業界標準
    • シンプル - 簡単に作成・編集
    • 安全 - 正しく処理すれば安全
    • 効率的 - ファイルサイズが小さい

    JSON ファイルの作成と管理の基礎を習得しました!

    Share:

    関連記事

    Read in English