js对json、xml字符串格式化(美化增强可读性)
目录
格式化json
格式化xml
格式化json
json格式化工具:JSON在线编辑器-89工具网JSON编辑器在线是一个在线编辑JSON的编辑器工具,可以把JSON内容或JSON文件进行格式化解析,按JSON层级展现.当JSON格式出现问题,采用中文的方式提醒JSON错误内容,以及标记JSON解析错误位置.89Tool在线工具网是一个在线工具网,具有JSON工具,Cron生成器,JS加密解密工具等很多工具及教程文档.https://www.89tool.com/
function prettyFormat(str) {try {// 设置缩进为2个空格str = JSON.stringify(JSON.parse(str), null, 2);str = str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');return str.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {var cls = 'number';if (/^"/.test(match)) {if (/:$/.test(match)) {cls = 'key';} else {cls = 'string';}} else if (/true|false/.test(match)) {cls = 'boolean';} else if (/null/.test(match)) {cls = 'null';}return match;});} catch (e) {alert("异常信息:" + e);}
}let jsonStr = JSON.stringify({ a: 1, b: 2 })
console.log("jsonStr:", jsonStr)
console.log("jsonStr格式化后:", prettyFormat(jsonStr))
格式化xml
xml格式化工具:XML格式化 XML在线解析工具XML格式化工具是一款XML在线解析工具,提供XML格式化、XML压缩功能,格式化后的XML代码有着很高的可读性,颜色高亮显示代码,是程序员必备工具之一。https://tool.ip138.com/xml/
//格式化xml代码
function formateXml(xmlStr) {text = xmlStr;//使用replace去空格text = '\n' + text.replace(/(<\w+)(\s.*?>)/g, function ($0, name, props) {return name + ' ' + props.replace(/\s+(\w+=)/g, " $1");}).replace(/>\s*?</g, ">\n<");//处理注释text = text.replace(/\n/g, '\r').replace(/<!--(.+?)-->/g, function ($0, text) {var ret = '<!--' + escape(text) + '-->';return ret;}).replace(/\r/g, '\n');//调整格式 以压栈方式递归调整缩进var rgx = /\n(<(([^\?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(?:(\/)>)|(?:<(\/)\2>)))?)/mg;var nodeStack = [];var output = text.replace(rgx, function ($0, all, name, isBegin, isCloseFull1, isCloseFull2, isFull1, isFull2) {var isClosed = (isCloseFull1 == '/') || (isCloseFull2 == '/') || (isFull1 == '/') || (isFull2 == '/');var prefix = '';if (isBegin == '!') {//!开头prefix = setPrefix(nodeStack.length);} else {if (isBegin != '/') {///开头prefix = setPrefix(nodeStack.length);if (!isClosed) {//非关闭标签nodeStack.push(name);}} else {nodeStack.pop();//弹栈prefix = setPrefix(nodeStack.length);}}var ret = '\n' + prefix + all;return ret;});var prefixSpace = -1;var outputText = output.substring(1);//还原注释内容outputText = outputText.replace(/\n/g, '\r').replace(/(\s*)<!--(.+?)-->/g, function ($0, prefix, text) {if (prefix.charAt(0) == '\r')prefix = prefix.substring(1);text = unescape(text).replace(/\r/g, '\n');var ret = '\n' + prefix + '<!--' + text.replace(/^\s*/mg, prefix) + '-->';return ret;});outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n');return outputText;
}//计算头函数 用来缩进
function setPrefix(prefixIndex) {var result = '';var span = ' ';//缩进长度var output = [];for (var i = 0; i < prefixIndex; ++i) {output.push(span);}result = output.join('');return result;
}let xmlStr = `<books name='1'><book><author>李刚</author><title>疯狂XML讲义</title><publisher>电子工业出版社</publisher></book><book><author>Developer</author><title>XML格式化工具</title><publisher>ip138.com</publisher></book></books>`
let a = formateXml(xmlStr)
console.log(a)
在node中 将格式化后的字符串写入test.xml中
const fs = require("fs")
fs.writeFileSync('test.xml', a)
js对json、xml字符串格式化(美化增强可读性)相关推荐
- JS转json对象为格式化json字符串
JS转json对象为格式化json字符串 JSON.stringify(jsonObj, null, 4)
- js处理json和字符串示例
js处理json格式的插入.修改.删除,以及字符串的比较等常用操作 demo 1: json格式的插入.删除 [html] view plaincopy print? <html> &l ...
- js:JSON与字符串互转
JSON转字符串 data为json对象 var str=JSON.stringify(data); 字符串转json对象 str为json格式的字符串 var json=JSON.parse(str ...
- 关于json时间字符串格式化处理
背景:前段时间在用easyui框架做一个项目的时候,由于对数据集合中显示的时间,有的希望是日期(即不带时分秒)而有的又希望是时间(即带有时分秒)的样式,而json字符串返回的时间字符串在日期和时间直接 ...
- JS中JSON和字符串的转化
1.字符串转JSON对象 var studentStr ='{"name":"小明","age":"18"," ...
- 转js 将json字符串转换为json对象的方法解析
将json字符串转换为json对象的方法.在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 我的解决思路是: ...
- js中Json对象与Json字符串互转(4种转换方式)
1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成jso ...
- java json formatter_Java格式化/美化JSON数据
JSON数据格式: 格式化/美化代码: package com.what21.jsonfmt; import java.util.Iterator; import org.json.JSONArray ...
- js遍历json数组给html td赋值,JS实现给json数组动态赋值的方法示例
关注微信公众号 JS实现给json数组动态赋值的方法示例 转载 更新时间:2017年07月04日 10:19:00 作者:小魏的马仔 这篇文章主要介绍了JS实现给json数组动态赋值的方法,结合 ...
最新文章
- 一个软件网络连接异常_手机也能玩PC大作了,串流软件Steam Link登陆iOS App Store...
- 第二篇:cout和endl的用法
- mysql2008r1_mysql8 参考手册-分区修剪
- 遍历 Dictionary,你会几种方式?
- 将以太坊封装为 ERC20
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
- Win10系统如何共享文件夹,教你怎么操作
- php调用go微服务,基于go搭建微服务实践教程 (一)
- 华为数通hcia认证考试题库有多少题?
- 【毕业设计论文】(软件类专业)规范写作以及查重篇
- steam版拳皇14无法正常启动
- HTML图片与上面的div有空隙,div与div之间有空隙的解决方法
- 十大安卓应用商店推广渠道排行榜
- vue在移动端实现禁用物理返回键
- 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观
- 亚马逊运营知识:ASIN文案编写技巧
- performance 优化
- 沐风:如何创造更多的睡后收入?
- 前端实现登录拼图验证
- WebDAV之葫芦儿·派盘+SwiftScan