目录

格式化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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');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字符串格式化(美化增强可读性)相关推荐

  1. JS转json对象为格式化json字符串

    JS转json对象为格式化json字符串 JSON.stringify(jsonObj, null, 4)

  2. js处理json和字符串示例

    js处理json格式的插入.修改.删除,以及字符串的比较等常用操作 demo 1:  json格式的插入.删除 [html] view plaincopy print? <html> &l ...

  3. js:JSON与字符串互转

    JSON转字符串 data为json对象 var str=JSON.stringify(data); 字符串转json对象 str为json格式的字符串 var json=JSON.parse(str ...

  4. 关于json时间字符串格式化处理

    背景:前段时间在用easyui框架做一个项目的时候,由于对数据集合中显示的时间,有的希望是日期(即不带时分秒)而有的又希望是时间(即带有时分秒)的样式,而json字符串返回的时间字符串在日期和时间直接 ...

  5. JS中JSON和字符串的转化

    1.字符串转JSON对象 var studentStr ='{"name":"小明","age":"18"," ...

  6. 转js 将json字符串转换为json对象的方法解析

    将json字符串转换为json对象的方法.在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 我的解决思路是: ...

  7. js中Json对象与Json字符串互转(4种转换方式)

    1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成jso ...

  8. java json formatter_Java格式化/美化JSON数据

    JSON数据格式: 格式化/美化代码: package com.what21.jsonfmt; import java.util.Iterator; import org.json.JSONArray ...

  9. js遍历json数组给html td赋值,JS实现给json数组动态赋值的方法示例

    关注微信公众号 JS实现给json数组动态赋值的方法示例 转载  更新时间:2017年07月04日 10:19:00   作者:小魏的马仔 这篇文章主要介绍了JS实现给json数组动态赋值的方法,结合 ...

最新文章

  1. 一个软件网络连接异常_手机也能玩PC大作了,串流软件Steam Link登陆iOS App Store...
  2. 第二篇:cout和endl的用法
  3. mysql2008r1_mysql8 参考手册-分区修剪
  4. 遍历 Dictionary,你会几种方式?
  5. 将以太坊封装为 ERC20
  6. 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
  7. Win10系统如何共享文件夹,教你怎么操作
  8. php调用go微服务,基于go搭建微服务实践教程 (一)
  9. 华为数通hcia认证考试题库有多少题?
  10. 【毕业设计论文】(软件类专业)规范写作以及查重篇
  11. steam版拳皇14无法正常启动
  12. HTML图片与上面的div有空隙,div与div之间有空隙的解决方法
  13. 十大安卓应用商店推广渠道排行榜
  14. vue在移动端实现禁用物理返回键
  15. 《联盟》读书笔记(三):如何协调员工与公司的目标和价值观
  16. 亚马逊运营知识:ASIN文案编写技巧
  17. performance 优化
  18. 沐风:如何创造更多的睡后收入?
  19. 前端实现登录拼图验证
  20. WebDAV之葫芦儿·派盘+SwiftScan

热门文章

  1. python入门之python编程语言(简介)
  2. 十分钟掌握多项式回归:拟合非线性关系
  3. iOS-使用Masonry布局不能立即获取到frame
  4. 红旗7linux安装教程,红旗Linux7.0硬盘安装简明教程
  5. 大数据量查询解决方案
  6. jdk17下载详细步骤
  7. ELK 日志分析平台 —— Logstash
  8. 详解Vue中使用scope进行样式隔离
  9. JBoss学习和应用
  10. 【云服务器 ECS 实战】一文掌握弹性伸缩服务原理及配置方法