最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何为节点的JSON.stringify()设置默认选项?

运维笔记admin10浏览0评论

如何为节点的JSON.stringify()设置默认选项?

如何为节点的JSON.stringify()设置默认选项?

我知道我可以跑:

 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()设置默认选项?

回答如下:

来自Mozilla Docs

你可以做这样的事情

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'"]'

发布评论

评论列表(0)

  1. 暂无评论