处理json中影响解析的多余引号
在xml中,敏感字符是尖括号,在json中,敏感字符是引号,上文中我们介绍了如何处理xml中的敏感字符,本文说说如何处理json中的敏感字符。
思路与上文相同,不再赘述。直接上代码:
json–>javaBean
@Test
public void test1() {
String json = "{\"id\":\"1\",\"name\":\"红\"楼\"'梦\",\"price\":\"90\",\"author\":\"曹雪芹\"}";
List<String> tags = new ArrayList<String>();
Pattern pattern = Pattern.compile("\\\"([a-zA-Z0-9]*)\\\":");
Matcher m = pattern.matcher(json);
while (m.find()) {
tags.add(m.group(1));
}
for (int i = 0; i < tags.size(); i++) {
json = json
.replaceAll("\\\"" + tags.get(i) + "\\\"",
"^^" + tags.get(i) + "^^")
.replaceAll(":\\\"", ":^^").replaceAll("\\\",", "^^,");
}
json = json.replaceAll("\\\"}", "^^}").replaceAll("\\\"]", "^^]")
.replaceAll("\"", "~~");
json = json.replace("^^", "\"");
ObjectMapper mapper = new ObjectMapper();
try {
Book book = mapper.readValue(json, Book.class);
book.setName(book.getName().replace("~~", "\""));
System.out.println("作者:" + book.getAuthor() + "\n书名:"
+ book.getName());
} catch (IOException e) {
e.printStackTrace();
}
}
json–>List
@Test
public void test2() {
String json = "[{\"id\":\"1\",\"name\":\"红\"楼\"'梦\",\"price\":\"90\",\"author\":\"曹雪芹\"},{\"id\":\"2\",\"name\":\"西游\"\"记\",\"price\":\"45\",\"author\":\"wuche\"ngen\"}]";
List<String> tags = new ArrayList<String>();
Pattern pattern = Pattern.compile("\\\"([a-zA-Z0-9]*)\\\":");
Matcher m = pattern.matcher(json);
while (m.find()) {
tags.add(m.group(1));
}
for (int i = 0; i < tags.size(); i++) {
json = json
.replaceAll("\\\"" + tags.get(i) + "\\\"",
"^^" + tags.get(i) + "^^")
.replaceAll(":\\\"", ":^^").replaceAll("\\\",", "^^,");
}
json = json.replaceAll("\\\"}", "^^}").replaceAll("\"", "~~");
json = json.replace("^^", "\"");
ObjectMapper mapper = new ObjectMapper();
try {
List<Book> books = mapper.readValue(json,
new TypeReference<ArrayList<Book>>() {
});
for (Book book : books) {
book.setName(book.getName().replace("~~", "\""));
book.setAuthor(book.getAuthor().replace("~~", "\""));
System.out.println("作者:" + book.getAuthor() + "\n书名:"
+ book.getName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
这两段关于json的处理基本是一致的。
版权声明:本文为博主原创文章,未经博主允许不得转载。
处理json中影响解析的多余引号的更多相关文章
- 处理json中影响解析的多余引號
在xml中,敏感字符是尖括号,在json中,敏感字符是引號,上文中我们介绍了怎样处理xml中的敏感字符.本文说说怎样处理json中的敏感字符. 思路与上文同样,不再赘述.直接上代码: json–> ...
- 在js中把json中的 key去掉双引号的方法
方法一: //数据格式是这样的: var data = '[{"id":30348079,"name":"表1","score&q ...
- python:解析js中常见的 不带引号的key的 json
首先要明晰一点,json标准中,key是必须要带引号的,所以标准json模块解析不带引号的key的 json就会抛错 不过有一些lib可以帮我们解析 如:demjson(链接) >>> ...
- Javascript中eval解析的json的几种用法
eval解析json字符串可用的三种方式都可以实现... <!DOCTYPE html> <html> <head> <meta charset=" ...
- eval解析JSON中的注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery ...
- jquery eval解析JSON中的注意点介绍
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:使用eval()函数.使用Function对象来进行返回解析,下面有个示例,感兴趣的朋友可以参考下 在JS中将JSON的字符串解析 ...
- js中eval详解,用Js的eval解析JSON中的注意点
先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要 ...
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...
- 用Js的eval解析JSON中的注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
随机推荐
- /etc/passwd 与 /etc/shadow
/etc/passwd是用户数据库,其中的域给出了用户名.加密口令和用户的其他信息. /etc/shadow是在安装了影子(shadow)口令软件的系统上的影子口令文件.影子口令文件将/etc/pas ...
- struts2文件下载出现Can not find a java.io.InputStream with the name的错误
今天在用struts2就行文件下载时出现如下错误: Servlet.service() for servlet default threw exception java.lang.IllegalArg ...
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-006-当构造函数有集合时的注入
一.当构造函数有集合时,只能用<CONSTRUCTOR-ARG>,不能用C-NAMESPACE 二. 1. package soundsystem.collections; import ...
- Web安全测试之XSS(转)
XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的 ...
- dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结 (转)
没想到搞个dom4j会出这么多怪错.. 最近在研究XBRL GL的有关内容,在项目中要求吧XBRL GL导入到11179注册库中,根据11179建立数据库,然后从XBRL GL分类标准中导入数据到数据 ...
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec Memory Limit: 357 MBSubmit: 552 Solved: 220[Submit][ ...
- java 图片文件格式转换(多页tif转jpg 、jpg转tif)
package util; import java.awt.image.RenderedImage; import java.awt.image.renderable.ParameterBlock; ...
- 彻底卸载oracle10g
如果Oracle安装在Windows上,那么删除起来特别麻烦,以下列出具体步骤: 软件环境: Windows 7.ORACLE 10.1.24:ORACLE安装路径为:C:/ORACLE 实现方法: ...
- Delphi TcxTreelist 表格左边总是缩进去 ,好像有偏移 解决方法
1. TcxTreelist的表格总是总是缩进去,如下效果 : 但是,新建一个没有偏移 ,经过观察,原来在 属性Images造成的, 把imgToolbars去除就可以了. 效果:
- 还是畅通工程 --HDOJ 1233
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...