これは解決された問題のようですが、私はそれに対する解決策を見つけることができません。
基本的に、私はJSONファイルを読み、キーを変更し、そして新しいJSONを同じファイルに書き戻します。すべてうまくいきますが、私はJSONフォーマットを失います。
{
name:'test',
version:'1.0'
}
私は
{name:'test',version:'1.1'}
Node.jsでファイルに整形式のJSONを書く方法はありますか?
JSON.stringify
の3番目のパラメータは見栄えのよい印刷のための空白の挿入を定義します。文字列または数値(スペース数)でもかまいません。ノードはfs
であなたのファイルシステムに書くことができます。例:
var fs = require('fs');
fs.writeFile('test.json', JSON.stringify({ a:1, b:2, c:3 }, null, 4));
/* test.json:
{
"a": 1,
"b": 2,
"c": 3,
}
*/
MDNの JSON.stringify()ドキュメント 、 ノードfsドキュメント を参照してください。
私はこれが役に立つかもしれないと思います...私は例のコードが大好きです:)
var fs = require('fs');
var myData = {
name:'test',
version:'1.0'
}
var outputFilename = '/tmp/my.json';
fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log("JSON saved to " + outputFilename);
}
});
単にオブジェクトをきれいに印刷してそれを有効なJSONとしてエクスポートしたくない場合はconsole.dir()
を使うことができます。
構文の強調表示、スマートなインデントを使用し、キーから引用符を削除し、出力を可能な限りきれいにします。
const jsonString = `{"name":"John","color":"green",
"smoker":false,"id":7,"city":"Berlin"}`
const object = JSON.parse(jsonString)
console.dir(object, {depth: null, colors: true})
フードの下でそれはconsole.log(util.inspect(…))
の近道です。唯一の違いは、オブジェクトに定義されているカスタムinspect()
関数をバイパスすることです。
これをどこにも保存したくない場合は、デバッグ目的でオブジェクトを表示するだけです。
console.log(JSON.stringify(object, null, " "));
3番目のパラメータを変更してインデントを調整できます。