如何在JavaScript中验证JSON格式并实现格式化输出?
在JavaScript中验证并格式化JSON的最优方案
我平时处理JSON需求时一直用JS原生的方法,简单高效还不用额外依赖任何库,完全能搞定验证和格式化这两件事!
一、验证JSON格式合法性
JS内置的JSON.parse()就是最靠谱的验证工具——如果传入的字符串不符合JSON规范,它会直接抛出SyntaxError错误。我们只需要用try-catch块捕获这个错误,就能轻松判断JSON是否合法:
function isValidJson(jsonString) { try { // 尝试解析字符串,成功则说明格式合规 JSON.parse(jsonString); return true; } catch (err) { // 解析失败时,打印错误细节并返回false console.error('JSON格式不合法:', err.message); return false; } }
二、格式化输出(Pretty-Print)
还是用原生的JSON.stringify()方法,它的第三个参数可以指定缩进的空格数(或者制表符'\t'),直接就能生成可读性极强的格式化JSON字符串:
function formatJson(jsonString) { try { // 先把JSON字符串解析成JS对象,再格式化输出 const parsedData = JSON.parse(jsonString); // 第三个参数设为2表示用2个空格缩进,换成4或者'\t'都可以按需调整 return JSON.stringify(parsedData, null, 2); } catch (err) { console.error('无法格式化:JSON格式错误', err.message); return null; } }
实际使用示例
// 测试用的原始JSON字符串 const rawJson = '{"username":"piyush","posts":[{"title":"JS技巧","likes":120},{"title":"JSON指南","likes":89}]}'; // 验证JSON合法性 console.log(isValidJson(rawJson)); // 输出: true // 格式化并打印结果 const formattedJson = formatJson(rawJson); console.log(formattedJson); // 输出的格式化内容: // { // "username": "piyush", // "posts": [ // { // "title": "JS技巧", // "likes": 120 // }, // { // "title": "JSON指南", // "likes": 89 // } // ] // }
为什么这是最优方案?
- 完全原生,不需要引入任何第三方库,减少项目依赖的同时也避免了额外的打包体积
- 性能优异,原生API的执行效率远高于大多数第三方实现
- 兼容性拉满,几乎所有现代浏览器和Node.js版本都完美支持
JSON.parse()和JSON.stringify()
内容的提问来源于stack exchange,提问作者Piyush Dabhi
相关产品推荐
相关产品推荐

