JSONマスターへの道!Node.jsでJSONを自在に操る
Node.js で JSON を解析する方法
JSON.parse() メソッドを使う
最も簡単な方法は、JSON.parse()
メソッドを使うことです。この方法は、JSON 文字列を JavaScript オブジェクトに変換します。
const jsonStr = '{ "name": "John Doe", "age": 30 }';
const obj = JSON.parse(jsonStr);
console.log(obj); // { name: 'John Doe', age: 30 }
注意:
- JSON 文字列が正しくフォーマットされていない場合、
JSON.parse()
メソッドはエラーをスローします。 - JSON 文字列が複雑な場合、
JSON.parse()
メソッドはパフォーマンスの問題を引き起こす可能性があります。
fs モジュールを使う
ファイルから JSON データを読み込む場合は、fs
モジュールを使うことができます。
const fs = require('fs');
fs.readFile('data.json', 'utf-8', (err, data) => {
if (err) throw err;
const obj = JSON.parse(data);
console.log(obj); // { name: 'John Doe', age: 30 }
});
- ファイルが存在しない場合、
fs.readFile()
メソッドはエラーをスローします。 - ファイルの読み込みが完了するまで、コードの実行はブロックされます。
ストリームを使う
パフォーマンスが重要な場合は、ストリームを使って JSON データを解析することができます。
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('data.json'),
});
rl.on('line', (line) => {
const obj = JSON.parse(line);
console.log(obj); // { name: 'John Doe', age: 30 }
});
- この方法は、複雑な JSON データには適していない場合があります。
- ストリーム処理には、ある程度の知識が必要です。
サードパーティライブラリを使う
JSON.parse()
メソッドや fs
モジュールで十分ではない場合は、サードパーティライブラリを使うことができます。
これらのライブラリは、より多くの機能とパフォーマンスを提供します。
Node.js で JSON を解析するには、いくつかの方法があります。どの方法を使うかは、状況によって異なります。
- 簡単な方法:
JSON.parse()
メソッド - ファイルから読み込む:
fs
モジュール - パフォーマンス重視: ストリーム
- 複雑な JSON データ: サードパーティライブラリ
JSON.parse() メソッドを使う
const jsonStr = '{ "name": "John Doe", "age": 30 }';
const obj = JSON.parse(jsonStr);
console.log(obj); // { name: 'John Doe', age: 30 }
fs モジュールを使う
const fs = require('fs');
fs.readFile('data.json', 'utf-8', (err, data) => {
if (err) throw err;
const obj = JSON.parse(data);
console.log(obj); // { name: 'John Doe', age: 30 }
});
ストリームを使う
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('data.json'),
});
rl.on('line', (line) => {
const obj = JSON.parse(line);
console.log(obj); // { name: 'John Doe', age: 30 }
});
Node.js で JSON を解析するその他の方法
JSON5 モジュールを使う
JSON5 は、JSON の拡張版です。JSON5 モジュールを使うと、JSON5 形式のデータを解析することができます。
const json5 = require('json5');
const data = json5.parse('{ name: "John Doe", age: 30, // コメント }');
console.log(data); // { name: 'John Doe', age: 30 }
eval()
関数を使うと、JSON 文字列を JavaScript コードとして実行することができます。ただし、この方法はセキュリティ上のリスクがあるため、使用は避けたほうがよいでしょう。
const jsonStr = '{ "name": "John Doe", "age": 30 }';
const obj = eval(jsonStr);
console.log(obj); // { name: 'John Doe', age: 30 }
手動で解析する
JSON データは、単純なテキスト形式なので、手動で解析することも可能です。ただし、この方法は複雑な JSON データには適していない場合があります。
const jsonStr = '{ "name": "John Doe", "age": 30 }';
const obj = {};
const parts = jsonStr.split(/[:,]/);
for (let i = 0; i < parts.length; i += 2) {
obj[parts[i].trim()] = parts[i + 1].trim();
}
console.log(obj); // { name: 'John Doe', age: 30 }
- JSON5 形式: JSON5 モジュール
- 手動で解析: シンプルなデータ
javascript json node.js