代码背景:
现在有一个json格式的数据,但是由于redis客户端上面没办法直接创建/导入json的数据格式。
故考虑现在redis客户端上先存储一个名为"old_order"的string类型的的源数据。
思路:
由于直接使用redisTemplate获取自动导入的string类型的数据会因为数据格式而不完整,因此这边可以调用stringRedisTemplate来进行获取给jsonString。
然后根据获取到的数据,再使用JSON.parseObject转换数据类型,转成目标json格式的arrayList。
最后,再使用JSON.toJSONString将其转成string类型的格式,使用redisTemplate存储到redis中。
这样,存储到redis中的值下次需要用的时候,就可以直接redisTemplate.opsForValue().get(key1)即可获取到。
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;public class xxxServiceImpl implements xxxService {// 分别进行依赖注入@Resourceprivate StringRedisTemplate stringRedisTemplate;@Resourceprivate RedisTemplate redisTemplate;@Overridepublic void String2Json() {String key = "old_order";String key1 = "new_order";String jsonString = (String) stringRedisTemplate.opsForValue().get(key);ArrayList<Map<String, String>> arrayList = (ArrayList<Map<String, String>>) JSON.parseObject(jsonString, ArrayList.class);String jsonStrings = JSON.toJSONString(arrayList);redisTemplate.opsForValue().set(key1, arrayList, 86400, TimeUnit.SECONDS);log.info("存储完成");}}