JSONをプリティプリントする方法(全手法)

22 Feb 2026 611 words

JSONをプリティプリントする方法

プリティプリント(整形表示)を行うと、生のJSONデータが適切なインデントと改行で読みやすくなります。これはデバッグ、ドキュメント作成、API開発、そして人間が構造化データを確認する必要があるあらゆるシナリオで不可欠です。プリティプリントがないと、JSONは1行の途切れのないテキストとして表示され、視覚的に解析することがほぼ不可能になります。このガイドでは、オンラインツールからコマンドラインユーティリティ、コードライブラリまで、さまざまな環境でJSONをフォーマットするすべての方法を説明します。

プリティプリントとは?

プリティプリント(ビューティファイやフォーマットとも呼ばれる)は、コンパクトなJSONに空白を追加して人間が読めるようにするものです。コンパクトなJSONオブジェクト {"name":"John","age":30,"hobbies":["reading","coding"]} は、構造化されインデントされた表現になります:

{
  "name": "John",
  "age": 30,
  "hobbies": [
    "reading",
    "coding"
  ]
}

この処理はデータを変更しません——視覚的な表示だけが変わります。ほとんどのプリティプリンターは、設定可能なインデント(スペース2つ、スペース4つ、またはタブ)とオプションのキー並べ替えを提供します。また、シンタックスハイライト、折りたたみ可能なツリービュー、無効なJSONのエラーハイライトを提供するものもあります。

オンラインでの方法

Help2Code JSONフォーマッターツールは、シンタックスハイライト、バリデーション、ツリービューを備えたインスタントフォーマットを提供します。ソフトウェアをインストールせずにJSONをフォーマットする最も速い方法です。JSON文字列を入力エリアに貼り付けるだけで、ツールがリアルタイムでフォーマットします。主な機能は次のとおりです:

  • 入力または貼り付け時のリアルタイムフォーマット
  • キー、文字列、数値、ブール値、null値のシンタックスハイライト
  • 行固有のエラーメッセージを表示するJSONバリデーション
  • 深くネストされた構造をナビゲートするための折りたたみ可能なツリービュー
  • フォーマット済み出力のファイルダウンロード
  • フォーマット済みJSONをコンパクトな形式に戻すミニファイモード
  • ワンクリックでクリップボードにコピー

このツールは、APIレスポンスを素早く確認したり、設定ファイルをデバッグしたり、フォーマット済みJSONを同僚と共有したりする必要がある開発者に最適です。

方法の比較

方法 速度 オフライン 最適な用途
Help2Code JSONフォーマッター 即時 いいえ クイックフォーマット、単発のタスク
ブラウザDevTools 高速 はい 開発中のAPIレスポンスデバッグ
VS Code 高速 はい 開発ワークフロー、ファイル編集
jq(CLI) 最速 はい スクリプト、自動化、パイプライン処理
JavaScript 状況による はい Webアプリでのプログラム的フォーマット
Python 高速 はい データ処理パイプライン
PHP 高速 はい 出力前のサーバーサイドフォーマット
Ruby 高速 はい RailsおよびRubyアプリケーション
IntelliJ IDEA 高速 はい エンタープライズJava/Kotlin開発

ブラウザDevTools

最新のブラウザはすべて、開発者ツールに組み込みのJSONプリティプリント機能を備えています。console.log() を使用してオブジェクトをコンソールに出力すると、ブラウザは自動的に折りたたみ可能なインタラクティブなツリービューで表示します。ただし、フォーマットをより細かく制御するには、JSON.stringify() をフォーマットオプション付きで使用します:

// ブラウザコンソールでの使用
const data = {
  name: "John",
  age: 30,
  hobbies: ["reading", "coding"],
  address: {
    street: "123 Main St",
    city: "Boston",
    zip: "02101"
  }
};

// 2スペースインデントでプリティプリント
console.log(JSON.stringify(data, null, 2));

// 4スペースインデントでプリティプリント
console.log(JSON.stringify(data, null, 4));

// タブインデントでプリティプリント
console.log(JSON.stringify(data, null, '\t'));

// オブジェクトの配列にはconsole.tableを使用
const users = [
  { id: 1, name: "Alice", role: "Admin" },
  { id: 2, name: "Bob", role: "User" }
];
console.table(users);

Chrome DevToolsのNetworkタブにも、APIレスポンス用の組み込みJSONビューアがあります。レスポンスに Content-Type: application/json がある場合、Previewタブが自動的にレスポンスボディをフォーマットし、シンタックスハイライトを適用し、折りたたみ可能なセクションで表示します。

VS Code

Visual Studio Codeは、JSONの編集とフォーマットに関して優れたサポートを標準で提供しています:

  1. ドキュメントのフォーマット:JSONコンテンツを選択し、Shift+Alt+F(Windows/Linux)または Shift+Option+F(Mac)を押すか、右クリックして「ドキュメントのフォーマット」を選択します。
  2. 保存時の自動フォーマットsettings.json"editor.formatOnSave": true を追加すると、JSONファイルの保存時に自動的にフォーマットされます。
  3. コメント付きJSON.jsonc):VS Codeはコメントを含むJSONファイルをサポートしており、settings.jsonlaunch.json などの設定ファイルで一般的に使用されています。

JSON処理のための追加のVS Code拡張機能:

  • Prettier - カスタマイズ可能なオプションでJSONをサポートするコードフォーマッター
  • JSON Tools - 並べ替え、ミニファイ、フォーマットのコマンドを追加
  • Bracket Pair Colorizer - 深くネストされたJSONの対応する括弧を色分け

コマンドライン(jq)

jqは、フォーマット、フィルタリング、変換、クエリを処理する強力なコマンドラインJSONプロセッサです。すべてのプラットフォームでパッケージマネージャーから利用でき、スクリプトでのJSON操作に最適なツールです:

# 基本フォーマット - JSONをIDフィルターでjqにパイプ
echo '{"name":"test","value":123}' | jq .

# 色付き出力(パイプではデフォルトで無効)
echo '{"name":"test"}' | jq -C .

# ファイルから読み込んでフォーマット
jq . file.json

# フォーマット済み出力を保存
jq . file.json > formatted.json

# 特定のインデントでフォーマット(デフォルトは2)
jq --indent 4 . file.json

# JSONをミニファイ(すべての空白を削除)
jq -c . file.json

# オブジェクトキーをアルファベット順に並べ替え
jq -S . file.json

# 特定のフィールドを抽出してフォーマット
cat data.json | jq '.users' | jq .

# ワンコマンドでプリティプリントと色付け
cat messy.json | jq -C . | less -R

jqは他のコマンドラインツールと組み合わせて、強力なデータ処理パイプラインを構築することもできます:

# APIレスポンスを取得してフォーマット
curl https://api.example.com/users | jq .

# 最初のN項目のみをフォーマット
curl https://api.example.com/users | jq '.[:5]'

# 変換してフォーマット
cat data.json | jq '{name: .user.name, email: .user.email}'

言語別の方法

主要なプログラミング言語にはすべて、組み込みまたはライブラリベースのJSONプリティプリント機能があります:

JavaScript:

const pretty = JSON.stringify(obj, null, 2); // 2スペースインデント
const compact = JSON.stringify(obj); // 空白なし

// カスタムreplacer関数で値のフィルタリング/変換
const filtered = JSON.stringify(obj, ['name', 'age'], 2);

// 機密フィールドを秘匿するカスタムreplacer
const redacted = JSON.stringify(obj, (key, value) => {
  if (key === 'password' || key === 'ssn') return '***';
  return value;
}, 2);

// Node.jsでより細かく制御するにはutil.inspectを使用
const util = require('util');
console.log(util.inspect(obj, { colors: true, depth: null, sorted: true }));

Python:

import json

data = {"name": "John", "age": 30, "active": True}

# 2スペースインデントの基本プリティプリント
pretty = json.dumps(data, indent=2)

# キーをアルファベット順に並べ替え
pretty = json.dumps(data, indent=2, sort_keys=True)

# 非ASCII文字をそのまま保持(エスケープしない)
pretty = json.dumps(data, indent=2, ensure_ascii=False)

# よりコンパクトな出力用のカスタムセパレータ
compact = json.dumps(data, separators=(',', ':'))

# コンソールに直接プリティプリント
print(json.dumps(data, indent=2, sort_keys=True))

PHP:

$data = ["name" => "John", "age" => 30, "hobbies" => ["reading"]];

// 基本プリティプリント
$pretty = json_encode($data, JSON_PRETTY_PRINT);

// Unicode文字を保持
$pretty = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

// キーを並べ替え
$pretty = json_encode($data, JSON_PRETTY_PRINT | JSON_SORT_KEYS);

// HTML用のエスケープ付きフォーマット
$pretty = json_encode($data, JSON_PRETTY_PRINT | JSON_HEX_TAG | JSON_HEX_AMP);

Ruby:

require 'json'

data = { name: "John", age: 30, active: true }

# プリティプリント
puts JSON.pretty_generate(data)

# カスタムオプション
puts JSON.pretty_generate(data, indent: "    ")

Go:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    data := map[string]interface{}{
        "name": "John",
        "age": 30,
    }
    pretty, _ := json.MarshalIndent(data, "", "  ")
    fmt.Println(string(pretty))
}

フォーマット時のJSONバリデーション

ほとんどのプリティプリントツールはJSONの構文も検証します。無効なJSONは、パーサーが意図された構造を判断できないためフォーマットできません。一般的なJSONバリデーションエラーは次のとおりです:

  • 末尾のカンマ[1, 2,])- JavaScriptでは許可されますが、JSONでは無効です
  • シングルクォート'value')- JSONでは文字列に二重引用符が必要です
  • キーの引用符欠落{name: "John"})- キーは引用符で囲む必要があります
  • エスケープされていない制御文字 - タブ、改行、復帰は \t\n\r のようにエスケープする必要があります
  • コメント - JSONはコメントをサポートしていません。コメントが必要な場合はJSONC形式を使用してください

各メソッドの使用どき

ワークフローに応じて適切な方法を選びましょう:

  • 単発のフォーマット:オンラインツール(最速、インストール不要)
  • 開発中:ブラウザDevToolsまたはVS Code(ワークフローに統合)
  • スクリプトと自動化:jq(パイプライン対応、スクリプト可能)
  • アプリケーションでのプログラム的フォーマット:言語別メソッド(JavaScriptの JSON.stringify、Pythonの json.dumps、PHPの json_encode
  • 大規模ファイル:jqまたはコマンドラインツール(ストリーミングにメモリ効率が良い)

まとめ

JSONのプリティプリントは、API、設定ファイル、データ処理を扱うすべての開発者にとって基本的なスキルです。オンラインツールからコマンドラインユーティリティ、主要なプログラミング言語まで、あらゆる環境に対応した方法があり、JSONを読みやすくする方法は必ずあります。重要なのは、コンテキストに応じて適切なツールを選ぶことです。クイックな確認には高速で便利なツールを、自動化されたパイプラインには強力でスクリプト可能なツールを選びましょう。


About this article

ブラウザ、エディタ、コマンドライン、プログラミング言語でJSONデータをプリティプリントする全手法を学びます。


Related Articles


Related Tools

Help2Code Logo
Menu