js转字符串的时候如何保留object内的空格?

var params = {'type': '1', 
              'value': '2'}
var str  = JSON.stringify(params);

str输出'{"type":"1","value":"2"}',原有的空格被去掉了;
如果想保留冒号之后的空格,输出'{"type": "1", "value": "2"}',除了repalce方法以外还有什么好办法吗?

阅读 6.9k
2 个回答
JSON.stringify(params, '', 1);

图片描述
试下这样转出来的JSON是不是你要的,你定义的是对象,想直接保留空格是做不到的,除非你直接定义JSON字符串

JSON.stringify可以接收三个参数

JSON.stringify(value[, replacer[, space]])

要保留空格是无法做到的,本来json的这些空格就没有意义,任何压缩工具都会把这些过滤掉

但是可以做到类似于格式化代码的效果

比如说

JSON.stringify(data,null,'\t');
//每一个层级比上一个多一个制表符

JSON.stringify(data,null,2);
//每一个层级比上一个多2个空格
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题