使用redisTemplate存的数据json数据双引号redis会自动转义,怎么解决
时间: 2024-03-17 16:42:38 浏览: 286
RedisTemplate 存储 JSON 数据时,Redis 会自动对双引号进行转义,导致存储的数据和原始的 JSON 数据不一致。解决方法有以下两种:
1. 使用序列化方式存储
可以在 RedisTemplate 中设置序列化方式,将存储的 JSON 数据序列化成字节数组或字符串存储。常用的序列化方式有 Jackson、FastJson、Gson 等,具体使用方法可以参考各自的官方文档。
2. 手动转义双引号
在存储 JSON 数据之前,手动对双引号进行转义,例如使用 String 类的 replace 方法将双引号替换成转义后的字符。在读取数据时,再将转义后的字符转换回双引号即可。
示例代码:
```
String json = "{\"name\":\"张三\",\"age\":18}";
json = json.replace("\"", "\\\"");
redisTemplate.opsForValue().set("json", json);
String storedJson = redisTemplate.opsForValue().get("json");
String originalJson = storedJson.replace("\\\"", "\"");
```
上述代码将原始的 JSON 数据进行了双引号转义后存储到 Redis 中,读取数据时再将转义字符替换回双引号,得到原始的 JSON 数据。
阅读全文