Node.jsでJSONを整形する
JavaScript (Node.js) で JSON を整形して出力する方法
JSON (JavaScript Object Notation) は、人間が読みやすい形式でデータを表現するためのデータ交換フォーマットです。Node.js では、JSON を美しく整形して出力するために、さまざまな方法があります。
JSON.stringify() メソッドを使用する
最も基本的な方法は、組み込みの JSON.stringify()
メソッドを使用することです。このメソッドは、JavaScript オブジェクトまたは配列を JSON 文字列に変換します。
const data = {
name: "John Doe",
age: 30,
city: "New York"
};
const formattedJSON = JSON.stringify(data, null, 2);
console.log(formattedJSON);
- 2
これは、各レベルのインデントに使用するスペースの数です。 - null
これは、キーの順序を指定しないことを示します。
npm パッケージを使用する
より高度な整形やカスタマイズが必要な場合は、npm パッケージを使用することができます。以下は、一般的なパッケージの例です。
pretty-json
npm install pretty-json
const prettyJson = require('pretty-json');
const formattedJSON = prettyJson.render(data);
console.log(formattedJSON);
json-stringify-pretty
npm install json-stringify-pretty
const stringify = require('json-stringify-pretty-string');
const formattedJSON = stringify(data, {
indent: 2,
maxLength: 80
});
console.log(formattedJSON);
これらのパッケージは、インデントのレベルや最大行長、キーの順序などをカスタマイズできるオプションを提供します。
日本語でのコード解説
const data = {
name: "John Doe",
age: 30,
city: "New York"
};
const formattedJSON = JSON.stringify(data, null, 2);
console.log(formattedJSON);
- JSON.stringify()
JavaScript オブジェクトを JSON 文字列に変換するメソッドです。 - data
JSON を整形したい JavaScript オブジェクトです。
このコードは、data
オブジェクトを JSON 文字列に変換し、2つのスペースでインデントしてコンソールに出力します。
pretty-json パッケージを使用する
const prettyJson = require('pretty-json');
const formattedJSON = prettyJson.render(data);
console.log(formattedJSON);
- prettyJson.render(data)
data
オブジェクトを整形して JSON 文字列を返します。 - require('pretty-json')
パッケージをインポートします。 - pretty-json
JSON を整形するための npm パッケージです。
このコードは、pretty-json
パッケージを使用して data
オブジェクトを整形し、コンソールに出力します。
json-stringify-pretty パッケージを使用する
const stringify = require('json-stringify-pretty-string');
const formattedJSON = stringify(data, {
indent: 2,
maxLength: 80
});
console.log(formattedJSON);
- maxLength
最大行長を指定します。 - indent
インデントのレベルを指定します。 - stringify
JSON を整形する関数です。 - json-stringify-pretty
JSON を整形するための npm パッケージです。
Node.js で JSON を整形する代替方法
組み込みの console.log() を利用する
Node.js の組み込み関数である console.log()
は、オブジェクトを JSON 形式で出力することができます。ただし、整形された形式での出力は提供されません。
console.log(data);
テンプレートリテラルを使用する
テンプレートリテラルは、文字列をより柔軟に操作できる方法です。JSON を整形するために、テンプレートリテラルと組み込みの JSON.stringify()
を組み合わせて使用することができます。
console.log(`
${JSON.stringify(data, null, 2)}
`);
カスタム関数を作成する
より高度な整形やカスタマイズが必要な場合は、独自の関数を定義することができます。
function prettyPrintJSON(data) {
return JSON.stringify(data, null, 2);
}
console.log(prettyPrintJSON(data));
ライブラリを使用する
他にも多くのライブラリが JSON の整形機能を提供しています。例えば、js-beautify
や json-stringify-pretty
などがあります。
注意
- カスタム関数やライブラリを使用することで、より柔軟な整形が可能になります。
- 組み込みの
console.log()
やテンプレートリテラルは、基本的な整形には適していますが、高度なカスタマイズには向いていない場合があります。
json node.js