我知道我可以跑步:
JSON.stringify(someObject, null, 2)
获得缩进输出。但是我记得阅读过一种方法,可以为节点的JSON.stringify()
实现指定默认选项,因此我可以这样做,然后:
JSON.stringify(someObject)
并获得可读的输出。但是在node's docs中找不到JSON。虽然我知道我可以修补JSON.stringify()...
global.originalJSONStringify = JSON.stringify
global.JSON.stringify = function wrappedJSONStringify(value, replacer, space = 2) {
return global.originalJSONStringify(value, replacer, space)
}
作为测试:
var results = JSON.stringify({key: {subkey: 'value'}})
var expected = originalJSONStringify({key: {subkey: 'value'}}, null, 2)
assert.equal(results, expected)
但是,如果有更好的解决方案,我宁愿不这样做。
如何为节点的JSON.stringify()设置默认选项?
答案 0 :(得分:0)
您可以这样做
var obj = {
data: 'data',
toJSON(key){
if(key)
return `Now I am a nested object under key '${key}'`;
else
return this;
}
};
JSON.stringify(obj);
// '{"data":"data"}'
JSON.stringify({ obj })
// '{"obj":"Now I am a nested object under key 'obj'"}'
JSON.stringify([ obj ])
// '["Now I am a nested object under key '0'"]'