详解json串反转义(消除反斜杠)


Posted in Javascript onAugust 12, 2019

JSon串在被串行化后保存在文件中,读取字符串时,是不能直接拿来用JSON.parse()解析为JSON  对象的。因为它是一个字符串,不是一个合法的JSON对象格式。例如下面的JSON串保存在文件中,读出来不能直接解析:

“{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}"

这个串如果出现在代码中是没有问题的,因为反斜杠就表示转义,但如果从文本文件中直接读出来就是这个样子,则不能直接用JSON.parse()进行解析,需要反串行化,消除掉反斜杠。有些programmer喜欢自己写一个工具类来做这样的事情,但已经有方便快捷的工具类可以来做这件事情,毋需我们重复发明车轮子。

可以直接使用Apache 的 common.lang工具包(使用工具类:org.apache.commons.lang.StringEscapeUtils)。例子如下:

public void test(){
 String str1 = "{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}";
 String tmp = StringEscapeUtils.unescapeJavaScript(str1);
 System.out.println("tmp:" + tmp);
 }

输出:

tmp:{"resourceId":"51ad70e41c5c11e88514000c290cdcfa","properties":{"process_id":"process4","name":"","documentation":"","processformtemplate":""}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript编写的第一人称射击游戏
Feb 25 Javascript
javascript Prototype 对象扩展
May 15 Javascript
JavaScript 通过模式匹配实现重载
Aug 12 Javascript
js constructor的实际作用分析
Nov 15 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
VueCli3构建TS项目的方法步骤
Nov 07 Javascript
json 带斜杠时如何解析的实现
Aug 12 #Javascript
electron实现静默打印的示例代码
Aug 12 #Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 #Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 #Javascript
ElementUI radio组件选中小改造
Aug 12 #Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 #Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 #Javascript
You might like
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
关于vue面试题汇总
2018/03/20 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python与mysql数据库交互的实现
2020/01/06 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
热爱祖国的演讲稿
2014/05/04 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
积极心理学课程心得体会
2016/01/22 职场文书