博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON文件中非法字符的处理
阅读量:7126 次
发布时间:2019-06-28

本文共 1072 字,大约阅读时间需要 3 分钟。

JSON文件中非法字符的处理

JSON是一种很好的数据格式,但是简单之处也有麻烦的地方,比如如果JSON的字符串里面出现了双引号的话,那真是搞死人了。

之前我很傻,每次抛出异常,我就根据异常显示的位置,去慢慢一个一个找错误的地方,昨天才发现,网上有很多免费的JSON检查的网站, 这个就很不错,把你的JSON文件粘贴过去,有错误的时候,就会显示第几行哪里错误了。

 

 
好书推荐
 
 
¥ 33.70
¥ 60.50
¥ 30.00
¥ 33.80
1
 
 
 

 

还有一个比较麻烦的是,有时候你需要写一个自动程序处理JSON数据,但是可能传过来的JSON数据就有非法字符怎么办?我遇到的就是从网上爬取数据的时候出现了这样的问题,居然有字符串出现了双引号没有转义(有些又是转义了的),还出现了换行符。我一直纠结不知道该怎么处理。今晚想到了一个办法,我发现JSON的合法双引号的出现都是有规律的,比如{"  ,:" ,",,这样的形式。然后我们可以先将这些合法的双引号用个特殊字符替代一下,比如我把 {"  替换为 {t ,然后再把替换完毕的字符串里面还剩的双引号全部去掉,这些剩下的双引号就是非法的了。我是把所有合法的双引号都用t表示了,现在只要把t转换为双引号就可以了。大致代码如下:

 

1
2
3
4
5
6
7
8
9
10
jsonString = jsonString.replaceAll(
"n"
,
""
);
            
jsonString = jsonString.replaceAll(
"{"
","
{t");
            
jsonString = jsonString.replaceAll(
""
}
","
t}");
            
jsonString = jsonString.replaceAll(
""
:
","
t:");
            
jsonString = jsonString.replaceAll(
""
,
","
t,");
            
jsonString = jsonString.replaceAll(
","
","
,t");
            
jsonString = jsonString.replaceAll(
":"
","
:t");
            
jsonString = jsonString.replaceAll(
""
","
""
);
            
jsonString = jsonString.replaceAll(
"t"
,
""
");
            
jsonString = jsonString.replaceAll(
"\","
");

转载地址:http://mchel.baihongyu.com/

你可能感兴趣的文章
geopy使用详解
查看>>
Notebook Workflows: The Easiest Way to Implement Apache Spark Pipelines
查看>>
mysql必知必会表样例
查看>>
我的友情链接
查看>>
python logging 模块在windows报错ConfigParser.NoSectionError: No section
查看>>
windows下python3虚拟环境搭建
查看>>
error at ::0 formal unbound in pointcut
查看>>
关于linux下Squid透明代理的试验
查看>>
马哥2016全新Linux+Python高端运维班第四期-第三次作业
查看>>
AngularJS基础语法
查看>>
程序编译过程
查看>>
《Linux学习并不难》归档和压缩(2):tar包的使用和管理
查看>>
cookie与session详解
查看>>
一键 安装lamp+lnmp+ftp+Tomcat任意选择5分钟起飞
查看>>
我的友情链接
查看>>
K-Backup的网络备份与集中存储介绍
查看>>
WM_CONCAT函数在11g上的变化
查看>>
Hive性能调优
查看>>
初始化oracle用户以及表空间的bash shell脚本
查看>>
CDN加速用途
查看>>