redis存储数据--json字符串转换
json转原对象
·
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);
更多推荐
所有评论(0)