将漂亮的JSON转换为文本

4

有没有一种从Node服务器将JSON对象转储到文本文件以进行调试的方法?

我正在处理一个包含其他对象数组的非常大的JSON对象。

理想情况下,生成的txt文件应该像这样正确格式化:

{
    type: 'Program',
    body: [
        {
            type: 'VariableDeclaration',
            declarations: [
                {
                    type: 'AssignmentExpression',
                    operator: =,
                    left: {
                        type: 'Identifier',
                        name: 'answer'
                    },
                    right: {
                        type: 'Literal',
                        value: 42
                    }
                }
            ]
        }
    ]
}

解决方案:
    var fs = require('fs');

    var myData = {
      name:'bla',
      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 ");
        }
    }); 

2
这个问题应该会有所帮助:https://dev59.com/OW035IYBdhLWcg3wBLRL - tymeJV
谢谢,这正是我在寻找的。 - Ivan Bacher
这是 https://dev59.com/hms05IYBdhLWcg3wIOfS 的重复吗? - David Cary
1个回答

9
如果你的json对象叫做json,你可以使用:JSON.stringify(json, null, 2); 这个方法将返回一个字符串,你可以将其转储。

在Perl中有一个Dumper模块可以帮助您格式化所有内容。在JS中是否存在类似的模块呢? - Ivan Bacher
1
@BuildingJarl 它会进行漂亮的打印。您可以调整传递给缩进级别的整数参数。我认为您需要注意的是,如果将其转储到文本文件时是否打印新行,这一点我不确定。 - Tom Grant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接