diff --git a/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/config/FastJson2JsonRedisSerializer.java b/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/config/FastJson2JsonRedisSerializer.java index 5a9b68b..762b9ee 100644 --- a/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/config/FastJson2JsonRedisSerializer.java +++ b/schoolNewsServ/common/common-redis/src/main/java/org/xyzh/common/redis/config/FastJson2JsonRedisSerializer.java @@ -37,9 +37,15 @@ public class FastJson2JsonRedisSerializer implements RedisSerializer { return new byte[0]; } + // 对String类型直接返回原始字节,不做JSON序列化 + if (t instanceof String) + { + return ((String) t).getBytes(DEFAULT_CHARSET); + } return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); } + @SuppressWarnings("unchecked") @Override public T deserialize(byte[] bytes) throws SerializationException { @@ -48,7 +54,15 @@ public class FastJson2JsonRedisSerializer implements RedisSerializer return null; } String str = new String(bytes, DEFAULT_CHARSET); - + // 对String类型直接返回字符串 + if (clazz == String.class || clazz == Object.class && !str.startsWith("{") && !str.startsWith("[")) + { + // 如果是纯字符串(非JSON格式),直接返回 + if (!str.startsWith("\"") && !str.startsWith("{") && !str.startsWith("[")) + { + return (T) str; + } + } return JSON.parseObject(str, clazz, AUTO_TYPE_FILTER); } }