1、存储到redis需要将数据转换成String类型

//普通
String productjsonStr = objectMapper.writeValueAsString(product);
stringRedisTemplate.boundHashOps("product").put(productId, productjsonStr);



//集合
String productImgsjsonStr = objectMapper.writeValueAsString(productImgs);
stringRedisTemplate.boundHashOps("productImgs").put(productId, productImgsjsonStr);


String productSkusjsonStr = objectMapper.writeValueAsString(productSkus);
stringRedisTemplate.boundHashOps("productSkus").put(productId, productSkusjsonStr);

从redis取出

//普通
String productInfo = (String) stringRedisTemplate.boundHashOps("product").get(productId);


//集合
String productImgsInfo = (String) stringRedisTemplate.boundHashOps("productImgs").get(productId);

String productSkusInfo = (String) stringRedisTemplate.boundHashOps("productSkus").get(productId);
       

2、取出时转换为原来的类型

1.ObjectMapper转换字符串转换为对象

springboot自带

//普通
Product product = objectMapper.readValue(productInfo, Product.class);

//集合
JavaType javaType1 = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, ProductSku.class);

2.Gson转换

谷歌旗下转换需引入依赖

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>
//普通
Product product = gson.fromJson(productInfo, Product.class);

//集合
List<ProductSku> productSkus = gson.fromJson(productSkusInfo, new TypeToken<List<ProductSku>>() {}.getType());
//与上面相同
Type type = new TypeToken<List<ProductSku>>() {}.getType();
List<ProductSku> productSkus = gson.fromJson(productSkusInfo, type);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐