详解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操作cookie的文章(设置,删除cookies)
Apr 01 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
zTree插件之多选下拉菜单实例代码
Nov 06 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
Jquery实现纵向横向菜单
Jan 24 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 Javascript
React如何将组件渲染到指定DOM节点详解
Sep 08 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
JS简单获得节点元素的方法示例
Feb 10 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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提示undefined index的几种解决方法
2012/05/21 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
深入理解Python中的内置常量
2017/05/20 Python
Python中property属性实例解析
2018/02/10 Python
python3 求约数的实例
2019/12/05 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
python 串行执行和并行执行实例
2020/04/30 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python如何实现远程方法调用
2020/08/07 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
警示教育观后感
2015/06/17 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python