網(wǎng)站首頁 編程語言 正文
redis中存儲(chǔ)list<map>,list<entity>結(jié)構(gòu)數(shù)據(jù)如何處理
作者:geekmice 更新時(shí)間: 2024-07-15 編程語言redis中存儲(chǔ)list
用到的工具類
1、序列化操作
String multiMapStr = JSON.toJSONString(multiMapList); // list
2、object轉(zhuǎn)換為指定類型的map或者其他類型
使用如下工具類,可以將object轉(zhuǎn)換為list《map》
package com.geekmice.springbootselfexercise.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @BelongsProject: spring-boot-self-exercise
* @BelongsPackage: com.geekmice.springbootselfexercise.utils
* @Author: pingmingbo
* @CreateTime: 2023-12-09 15:34
* @Description: 緩存工具類
* @Version: 1.0
*/
public class CastBeanUtil {
private CastBeanUtil() {
}
/**
* Json.parseArray返回object需要轉(zhuǎn)換,該方法可以轉(zhuǎn)換為字符串類型或者其他引用類型
* 問題:雙層for循環(huán)
* @param obj 源數(shù)據(jù)
* @param kCalzz key對應(yīng)class類型
* @param vCalzz value對應(yīng)class類型
* @param <K>key類型
* @param <V>value類型
* @return list<map>
*/
public static <K, V> List<Map<K, V>> castListMap(Object obj, Class<K> kCalzz, Class<V> vCalzz) {
List<Map<K, V>> result = new ArrayList<>();
if (obj instanceof List<?>) {
for (Object mapObj : (List<?>) obj) {
if (mapObj instanceof Map<?, ?>) {
Map<K, V> map = new HashMap<>(16);
for (Map.Entry<?, ?> entry : ((Map<?, ?>) mapObj).entrySet()) {
map.put(kCalzz.cast(entry.getKey()), vCalzz.cast(entry.getValue()));
}
result.add(map);
}
}
return result;
}
return null;
}
}
通過字符串類型處理
list《map》形式
key:字符串
val:序列化過的字符串
List<Map<String, String>> multiMapList = Lists.newArrayList();
for (int i = 0; i < 5; i++) {
LinkedHashMap<String, String> itemMap = Maps.newLinkedHashMap();
itemMap.put("name", "jack" + i);
if (i % 2 == 0) {
itemMap.put("age", String.valueOf(10 + i));
itemMap.put("sex", "男");
} else {
itemMap.put("age", String.valueOf(11 + i));
itemMap.put("sex", "女");
}
multiMapList.add(itemMap);
}
String multiMapStr = JSON.toJSONString(multiMapList);
client.opsForValue().set("str:multiusers", multiMapStr, DateConstant.TIME_OF_DAY, TimeUnit.SECONDS);
String userList = client.opsForValue().get("str:multiusers");
List<Map<String, String>> maps = CastBeanUtil.castListMap(JSON.parse(userList), String.class, String.class);
log.info("maps : [{}]", maps);
list《entity》結(jié)構(gòu)數(shù)據(jù)
List<TzArea> areaList = Lists.newArrayList();
for (int i = 0; i < 10; i++) {
TzArea item = new TzArea();
item.setAreaId((long) i);
item.setAreaName("江蘇省");
item.setLevel(1);
item.setParentId(1L);
areaList.add(item);
}
client.opsForValue().set("str:multiareas", JSON.toJSONString(areaList), DateConstant.TIME_OF_DAY, TimeUnit.SECONDS);
String res = client.opsForValue().get("str:multiareas");
List<TzArea> tzAreas = JSON.parseArray(res, TzArea.class);
log.info("tzAreas : [{}]", JSON.toJSONString(tzAreas));
原文鏈接:https://blog.csdn.net/greek7777/article/details/134943441
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-11-13 ASP.NET?MVC使用Session會(huì)話保持表單狀態(tài)_實(shí)用技巧
- 2022-06-16 利用Jetpack?Compose實(shí)現(xiàn)繪制五角星效果_Android
- 2023-01-29 python如何利用cv2.rectangle()繪制矩形框_python
- 2022-12-24 C++中類的三種訪問權(quán)限解析:private、public與protect_C 語言
- 2022-06-09 ASP.NET?Core基于現(xiàn)有數(shù)據(jù)庫創(chuàng)建EF模型_實(shí)用技巧
- 2022-06-25 基于Python實(shí)現(xiàn)五子棋游戲_python
- 2023-07-10 Bean的生命周期和作用域
- 2022-07-17 SQL?Server使用T-SQL語句批處理_MsSql
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支