redis中存儲list<map>,list<entity>的處理
用到的工具類
1、序列化操作
String multiMapStr = JSON.toJSONString(multiMapList); // list轉(zhuǎn)換為json字符串 Object o = JSON.parse(userList); // list轉(zhuǎn)換為object List<Map<String, String>> maps = CastBeanUtil.castListMap(JSON.parse(userList), String.class, String.class);// object轉(zhuǎn)換list List tzAreas = JSON.parseArray(res, TzArea.class); // 反序列化,json字符串轉(zhuǎn)換為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));到此這篇關(guān)于redis中存儲list<map>,list<entity>的處理的文章就介紹到這了,更多相關(guān)redis list<map> list<entity>內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合阿里云OSS對象存儲服務(wù)的實現(xiàn)
這篇文章主要介紹了SpringBoot整合阿里云OSS對象存儲服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
最簡單的Spring Cloud教程第一篇:服務(wù)的注冊與發(fā)現(xiàn)(Eureka)
這篇文章主要給大家介紹了關(guān)于Spring Cloud服務(wù)的注冊與發(fā)現(xiàn)(Eureka)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用spring cloud具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-08-08
java根據(jù)模板導(dǎo)出PDF的詳細實現(xiàn)過程
前段時間因為相關(guān)業(yè)務(wù)需求需要后臺生成pdf文件,所以下面這篇文章主要給大家介紹了關(guān)于java根據(jù)模板導(dǎo)出PDF的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-02-02
spring-session簡介及實現(xiàn)原理源碼分析
這篇文章主要介紹了spring-session簡介及實現(xiàn)原理源碼分析,具有一定參考價值,需要的朋友可以了解下。2017-11-11
mybatis sum(參數(shù)) 列名作為參數(shù)的問題
這篇文章主要介紹了mybatis sum(參數(shù)) 列名作為參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

