JSON.stringify()を使いこなす:詳細ガイド

2024-04-02

JavaScriptを使ってJSONを綺麗に印刷する方法

JSON.stringify()は、JSONオブジェクトを文字列に変換する関数です。オプションでスペースやタブを指定することで、整形された文字列を出力できます。

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = JSON.stringify(jsonData, null, 2);

console.log(prettyJson);

上記のコードは、JSONオブジェクトを2スペースのインデントで整形して出力します。

JSON.parse()は、文字列をJSONオブジェクトに変換する関数です。この関数を使ってJSONオブジェクトを解析し、HTML要素を使って整形して出力することができます。

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = JSON.parse(jsonData);

const html = `<pre>
  ${JSON.stringify(prettyJson, null, 2)}
</pre>`;

document.body.innerHTML = html;

ライブラリを使う

JSONを綺麗に印刷するためのライブラリもいくつか存在します。代表的なライブラリは以下の通りです。

これらのライブラリを使うと、より簡単にJSONを綺麗に印刷することができます。

JavaScriptを使ってJSONを綺麗に印刷するには、いくつかの方法があります。それぞれの特徴を理解して、目的に合った方法を選択してください。




JSON.stringify()を使う

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = JSON.stringify(jsonData, null, 2);

console.log(prettyJson);
{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
}

JSON.parse()とHTMLを使う

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = JSON.parse(jsonData);

const html = `<pre>
  ${JSON.stringify(prettyJson, null, 2)}
</pre>`;

document.body.innerHTML = html;

出力例:

<pre>
{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
}
</pre>

ライブラリを使う

json-formatterを使う

const jsonFormatter = require('json-formatter');

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = jsonFormatter.format(jsonData);

console.log(prettyJson);
{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
}

json-prettyを使う

const jsonPretty = require('json-pretty');

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = jsonPretty.prettyPrint(jsonData);

console.log(prettyJson);
{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
}

js-beautifyを使う

const jsBeautify = require('js-beautify');

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = jsBeautify.json(JSON.stringify(jsonData));

console.log(prettyJson);
{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
}



JavaScriptでJSONを綺麗に印刷する他の方法

JSON.stringify()のオプションを使う

  • replacer: オブジェクトの各プロパティを出力する前に処理する関数です。この関数を使って、プロパティの名前や値を変更したり、特定のプロパティを出力しないようにすることができます。
  • space: 出力結果に挿入する空白文字の数を指定します。
  • indent: 出力結果のインデント文字を指定します。
  • sort: オブジェクトのプロパティをソートするかどうかを指定します。

以下のコードは、JSON.stringify()のオプションを使って、オブジェクトのプロパティをソートし、2スペースのインデントで出力する例です。

const jsonData = {
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY"
  }
};

const prettyJson = JSON.stringify(jsonData, null, 2);

console.log(prettyJson);
{
  "address": {
    "city": "New York",
    "state": "NY",
    "street": "123 Main Street"
  },
  "age": 30,
  "name": "John Doe"
}

javascript json pretty-print


【初心者向け】JavaScriptで動的にscript要素を追加する3つの方法

動作の不確実性ブラウザによって、document. write()で挿入された<script>タグの動作が異なります。実行されない一部のみ実行されるエラーが発生するこれらの問題は、ブラウザのバージョンや設定によっても変化するため、確実に動作させることは困難です。...


jQueryとJavaScriptとCSSにおける要素の絶対座標取得方法の比較

offset() メソッドは、要素の左上隅がドキュメントの左上隅からのオフセット(距離)を取得します。offset() メソッドは、要素がスクロールによって移動しても、常に正しい座標を取得することができます。position() メソッドは、要素がスクロールによって移動しても、親要素に対する相対的な座標は変わりません。...


【超便利】MutationObserver APIでスタイル変更を検知!詳細解説とサンプルコード

Webページ上で要素のスタイルが変更されたことを検知したいことはよくあると思います。例えば、ユーザーが要素にマウスカーソルを合わせた時や、要素の属性が変更された時に、スタイルを変更したい場合があります。しかし、JavaScriptにはスタイル変更を検知するネイティブイベントは存在しません。そのため、MutationObserver APIやjQueryなどのライブラリを使用して、スタイル変更を検知する必要があります。...


Chrome拡張機能開発で遭遇する「TypeError: Converting circular structure to JSON」エラーの対処法

循環参照とは、オブジェクト内に相互参照が存在する状態を指します。例えば、以下のコードは循環参照を作成します。このコードでは、objオブジェクトのaプロパティにobjオブジェクト自身を設定しています。つまり、obj. aにアクセスすると、objオブジェクトが再帰的に参照されます。...


JavaScript 配列からランダムな項目を取得する方法:Math.random、Fisher-Yates シャッフル、Underscore.js

概要:Math. random() 関数は、0 から 1 までのランダムな浮動小数点数を生成します。配列の長さを Math. random() 関数の生成結果に乗じて、ランダムなインデックスを取得します。配列の [] 演算子を使用して、ランダムなインデックスで指定された項目を取得します。...


SQL SQL SQL SQL Amazon で見る



Node.jsでJSONを可読性のある形式に変換する方法

最も簡単な方法は、JSON. stringify関数を使うことです。この関数は、JSONオブジェクトを文字列に変換します。オプションとして、indentオプションを指定することで、出力結果をインデントすることができます。このコードは、以下の出力を生成します。


【保存版】JSON.stringifyで生成したJSONを整形してdivに分かりやすく表示するテクニック

JSON は、JavaScript でよく使用されるデータ形式であり、軽量で読みやすいのが特徴です。しかし、複雑な構造を持つ JSON データを扱う場合、そのまま出力するとわかりにくくなります。そこで、JSON. stringify() 関数を使って JSON データを整形して出力する方法を紹介します。