關(guān)于Map的遍歷以及轉(zhuǎn)JsonArray存儲方式
更新時間:2024年11月04日 10:48:37 作者:瘋狂咕嚕咚
在Java開發(fā)過程中,經(jīng)常會遇到需要對復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理的情況,本案例以List<Map<String,Object>>為例,介紹了如何遍歷該數(shù)據(jù)結(jié)構(gòu),并根據(jù)特定條件篩選出符合要求的元素,通過自定義一個Edit類來模擬形成一個新的Map對象,實(shí)現(xiàn)了數(shù)據(jù)的有序存儲
Map的遍歷以及轉(zhuǎn)JsonArray存儲
案例目的將List<Map<String,Object>> 遍歷,按條件取得map里面符合要求的元素
將其有序的放到自定義的一個Edit類中,模擬形成一個新的Map對象:
- Edit類:
public class Edit {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}- 測試類:
public class Test {
public List<Map<String,Object>> see() {
Map<String, Object> map = new HashMap<>();
map.put("wkx", "666");
map.put("laq", "999");
map.put("key", "datetime");
map.put("value", "2000");
Map<String, Object> map2 = new HashMap<>();
map2.put("wkx2", "666");
map2.put("laq2", "999");
map2.put("key", "dateid");
map2.put("value", "1000");
List<Map<String, Object>> listmap = new LinkedList<>();
listmap.add(map);
listmap.add(map2);
return listmap;
}
public static void main(String[] args) {
Test a = new Test();
List<Edit> edits=new LinkedList<>();
List<List<Edit>> mapplus =new LinkedList<>();
List list = a.see();
for (int i=0;i<list.size();i++){
Edit edit = new Edit();
Map<String, Object> map = (Map) list.get(i);
for (Map.Entry entry : map.entrySet()) {
if ("key".equals(entry.getKey())) {
edit.setKey((String)entry.getValue());
}
if ("value".equals(entry.getKey())) {
edit.setValue((String) entry.getValue());
}
}
if (edit.getKey()!=null&&edit.getValue()!=null) {
edits.add(edit);
}
}
mapplus.add(edits);
System.out.println(list.toString());
}
}
將mapplus里面的內(nèi)容全部存儲到數(shù)據(jù)庫中的一個字段中
public String list2string(List<List<Edit>> list){
//但我們得到一個全新的list<map>時,我們要把它里面所有的map(包括key和value都存到數(shù)據(jù)庫中的一個字段中去)
// 我們用到j(luò)soAarray
JSONArray jsonArray = new JSONArray();
//逐漸遍歷之前取得的mapplus
list.forEach(n->{
n.forEach(e -> {
String key = e.getKey();
String value = e.getValue();
});
jsonArray.add(n);
});
return JSONArray.toJSONString(jsonArray);
}
//測試
mapplus.add(edits);
String ss = new SortByLetter().list2string(mapplus);
System.out.println(ss);
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
阿里的Easyexcel讀取Excel文件的方法(最新版本)
這篇文章主要介紹了阿里的Easyexcel讀取Excel文件(最新版本)的方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
MQTT SpringBoot整合實(shí)戰(zhàn)教程
這篇文章主要介紹了MQTT SpringBoot整合實(shí)戰(zhàn)教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2025-05-05
SpringBoot中@EnableAsync和@Async注解的使用小結(jié)
在SpringBoot中,可以通過@EnableAsync注解來啟動異步方法調(diào)用的支持,通過@Async注解來標(biāo)識異步方法,讓方法能夠在異步線程中執(zhí)行,本文就來介紹一下,感興趣的可以了解一下2023-11-11
解決spring boot hibernate 懶加載的問題
這篇文章主要介紹了解決spring boot hibernate 懶加載的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Spring Boot學(xué)習(xí)入門之統(tǒng)一異常處理詳解
我們在做Web應(yīng)用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。下面這篇文章主要給大家介紹了關(guān)于Spring Boot學(xué)習(xí)入門之統(tǒng)一異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
Spring?Boot實(shí)現(xiàn)消息的發(fā)送和接收使用實(shí)戰(zhàn)指南
這篇文章主要為大家介紹了Spring?Boot實(shí)現(xiàn)消息的發(fā)送和接收使用實(shí)戰(zhàn)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

