struts json序列化遇上replaceAll就出问题

简介:

是用struts 的json插件进行序列化

 代码如下:

Java代码   收藏代码
  1. @Test  
  2.     public void test_json() throws JSONException {  
  3.         Map<String, String> map = new HashMap<String, String>();  
  4.         map.put("name""whua\"ng");  
  5.         String result = JSONUtil.serialize(map);  
  6.   
  7.         System.out.println(result);  
  8.         String source = "{\"result\":\"_jsonPlaceHolder\"}";  
  9.         String result2=source.replaceAll("\"" + "_jsonPlaceHolder" + "\"", result);  
  10.         System.out.println(result2);  
  11.     }  

 运行结果如下:

{"name":"whua\"ng"}

{"result":{"name":"whua"ng"}}

 

是用json解析时报错,{"result":{"name":"whua"ng"}} 不是合法的json字符串。

经过反复看,发现whua\"ng中的斜杠没有了!!!!

问题出在replaceAll

 

解决方法如下

(添加).replaceAll("\\\\", "\\\\\\\\")

Java代码   收藏代码
  1. @Test  
  2.     public void test_json() throws JSONException {  
  3.         Map<String, String> map = new HashMap<String, String>();  
  4.         map.put("name""whua\"ng");  
  5.         String result = JSONUtil.serialize(map);  
  6.   
  7.         System.out.println(result);  
  8.         String source = "{\"result\":\"_jsonPlaceHolder\"}";  
  9.         String result2 = source.replaceAll("\"" + "_jsonPlaceHolder" + "\"",  
  10.                 result.replaceAll("\\\\", "\\\\\\\\"));  
  11.         System.out.println(result2);  
  12.     }  

 

相关文章
|
4天前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
9 0
|
5天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
20 2
|
17天前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
16 0
|
2月前
|
存储 JSON JavaScript
Python中的JSON与Pickle模块:数据序列化和反序列化的利器
在Python编程中,数据的序列化和反序列化是经常遇到的操作。序列化是将数据结构或对象状态转换为可以存储或传输的格式的过程,而反序列化则是这个过程的逆操作,即将序列化的数据重新转换回原来的数据结构或对象状态。Python中的JSON和Pickle模块就是实现数据序列化和反序列化的强大工具。
|
2月前
|
JSON Java Maven
使用Jackson进行 JSON 序列化和反序列化
使用Jackson进行 JSON 序列化和反序列化
29 0
|
2月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
22 0
|
3月前
|
JSON 数据格式 C++
[序列化协议] --- JSON
[序列化协议] --- JSON
35 0
|
4月前
|
JSON Java fastjson
Java中的JSON序列化和反序列化
Java中的JSON序列化和反序列化
|
4月前
|
JSON 机器人 数据格式
阿里云RPA支持将序列化的JSON数据作为输入参数传递给机器人应用程序
【1月更文挑战第7天】【1月更文挑战第33篇】阿里云RPA支持将序列化的JSON数据作为输入参数传递给机器人应用程序
212 1
|
5月前
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
69 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)