为什么redis 存储json对象时,数据会包含对象的包名,java中如何去除
时间: 2023-05-18 14:07:17 浏览: 135
Redis 存储 JSON 对象时,数据会包含对象的包名是因为 Redis 使用的是字符串类型来存储数据,而 JSON 对象在 Redis 中被存储为字符串。Java 中可以使用 Jackson 库来将 JSON 对象转换为字符串,而在转换时可以使用 ObjectMapper 的 configure 方法来设置 SerializationFeature 的属性,将包名去除。具体代码如下:
```
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
mapper.configure(SerializationFeature.WRITE_ENUMS_USING_INDEX, false);
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
mapper.configure(SerializationFeature.CLOSE_CLOSEABLE, false);
mapper.configure(SerializationFeature.FLUSH_AFTER_WRITE_VALUE, false);
mapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false);
String jsonString = mapper.writeValueAsString(jsonObject);
```
其中,jsonObject 为需要转换的 JSON 对象。
阅读全文