如何将JSON字符串格式化输出

JavaScript014

如何将JSON字符串格式化输出,第1张

一般在项目中,我们可能会经常需要对返回结果进行格式化处理,比如先把返回结果对象转换为JSON格式的字符串,然后再将其输出。这个JSON格式化处理的过程,我们在前端或者后端都可以实现。

在JavaScript中,我们如果需要将js对象转换为json字符串,可以通过 JSON.stringify() 来实现。

相反,如果需要将json字符串转换为js对象,可以通过 JSON.parse() 来实现。

在Python3中,我们如果需要将Python对象转换为json字符串,可以通过 json.dumps() 来实现。

相反,如果需要将json字符串转换为Python对象,可以通过 json.loads() 来实现。

1、vs code安装插件eslint2、文件 - 首选项 - 设置 - json配置3、粘贴以下JSON配置,保存{// vscode默认启用了根据文件类型自动设置tabsize的选项"editor.detectIndentation": false,// 重新设定tabsize"editor.tabSize": 2,// #每次保存的时候自动格式化"editor.formatOnSave": true,// #每次保存的时候将代码按eslint格式进行修复"eslint.autoFixOnSave": true,// 添加 vue 支持"eslint.validate": ["javascript","javascriptreact",{"language": "vue","autoFix": true}],// #让prettier使用eslint的代码格式进行校验"prettier.eslintIntegration": true,// #去掉代码结尾的分号"prettier.semi": false,// #使用带引号替代双引号"prettier.singleQuote": true,// #让函数(名)和后面的括号之间加个空格"javascript.format.insertSpaceBeforeFunctionParenthesis": true,// #这个按用户自身习惯选择"vetur.format.defaultFormatter.html": "js-beautify-html",// #让vue中的js按编辑器自带的ts格式进行格式化"vetur.format.defaultFormatter.js": "vscode-typescript","vetur.format.defaultFormatterOptions": {"js-beautify-html": {"wrap_attributes": "aligned-multiple"},"prettyhtml": {"printWidth": 100,"singleQuote": false,"wrapAttributes": false,"sortAttributes": false}},// 格式化stylus, 需安装Manta's Stylus Supremacy插件"stylusSupremacy.insertColons": false, // 是否插入冒号"stylusSupremacy.insertSemicolons": false, // 是否插入分好"stylusSupremacy.insertBraces": false, // 是否插入大括号"stylusSupremacy.insertNewLineAroundImports": false, // import之后是否换行"stylusSupremacy.insertNewLineAroundBlocks": false,"window.zoomLevel": 0,"[javascript]": {"editor.defaultFormatter": "vscode.typescript-language-features"}}

方法定义:JSON.stringify(value, replacer, space)

参数说明:

value:js对象

replacer:替换对象,可以是一个方法、对象或数组,将value按照替换规则展示。

space:填充参数,可以是数字或字符串,将value按照参数进行格式化展示。

方法说明:将value对象转换为指定格式的json文本。

结果:

"字符串测试"

{"name":"张三","age":28,"gender":"男"}

[{"name":"张三","age":20,"gender":"男"},{"name":"李思","age":28,"gender":"女"}]

参数为function(key,value),会根据函数返回值替换value中的值。

例如替换上面对象的gender为英文大写。

结果:

{"name":"张三","age":28,"gender":"MAN"}

[{"name":"张三","age":20,"gender":"GRIL"},{"name":"李思","age":28,"gender":"GRIL"}]

参数为数组时,会遍历数组的值,以数组的值作为value的属性。如果value原本包含该属性,那么显示该属性,如果不包含则不显示。例如:

上面的name数组包含3个值,而testObj对象值包含其中的name属性和gender属性,并不存在gril属性,所以,只会显示name和gender属性。

结果:

{"name":"张三","gender":"man"}

[{"name":"张三","gender":"gril"},{"name":"李思","gender":"gril"}]

如果将参数改为一个对象数组,那么因为对象不是一个属性,key值为“”,所以会显示一个空对象:{}

如果space参数为数字n时,value对象将被格式化,并且属性会缩进n个字符。n>10时,只会缩进10个空格,n<10时,缩进n个空格,n<=0时不进行格式化。例如:

如果space为特殊字符时,按照特殊字符格式化。

例如:"\n":每行换行。"aa":每行头部添加aa字母。