詳解Java實(shí)現(xiàn)JSONArray轉(zhuǎn)Map的三種實(shí)現(xiàn)方式
本文只是自己常用的三種,自己總結(jié)一下,不是只有這三種,杠精走開;
JSONArray數(shù)據(jù)
[
{
"flagType": 1,
"flagIcon": "1.jpg"
},
{
"flagType": 2,
"flagIcon": "2.jpg"
},
{
"flagType": 3,
"flagIcon": "3.jpg"
},
{
"flagType": 4,
"flagIcon": "4.jpg"
}
]
要轉(zhuǎn)成目標(biāo)數(shù)據(jù)
{
1:"1.jpg",
2:"2.jpg",
3:"3.jpg",
4:"4.jpg"
}
第一種
JSONArray jsonArray= new JSONArray();
//填充初始數(shù)據(jù),此處過程省略
List<JSONObject> jsonObjectList = jsonArray.toJavaList(JSONObject.class);
Map<Integer, String> map = jsonObjectList.stream().filter(Objects::nonNull).collect(Collectors.toMap(item -> item.getInteger("flagType"), item -> item.getString("flagIcon")));
第二種
JSONArray jsonArray= new JSONArray();
//填充初始數(shù)據(jù),此處過程省略
Map<Integer, String> map = jsonArray.stream().filter(Objects::nonNull)
.collect(Collectors.toMap(
object -> {
JSONObject item = (JSONObject) object;
return item.getInteger("flagType");
},
object -> {
JSONObject item = (JSONObject) object;
return item.getString("flagIcon");
}
));
第三種
Map<Integer, String> flagIconMap = new HashMap<>();
JSONArray jsonArray= new JSONArray();
//填充初始數(shù)據(jù),此處過程省略
if (jsonArray != null && !jsonArray.isEmpty()) {
jsonArray.forEach(object -> {
if (object == null) {
return;
}
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.getInteger("flagType") == null) {
return;
}
flagIconMap.put(jsonObject.getInteger("flagType"),jsonObject.getString("flagIcon"));
});
}
到此這篇關(guān)于詳解Java實(shí)現(xiàn)JSONArray轉(zhuǎn)Map的三種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)Java JSONArray轉(zhuǎn)Map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript中利用Array filter() 方法壓縮稀疏數(shù)組
- Javascript中關(guān)于Array.filter()的妙用詳解
- 使用Gson將字符串轉(zhuǎn)換成JsonObject和JsonArray
- Java使用fastjson對(duì)String、JSONObject、JSONArray相互轉(zhuǎn)換
- js中Array.forEach跳出循環(huán)的方法實(shí)例
- 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換
- JavaScript中Array的filter函數(shù)詳解
相關(guān)文章
在Spring Boot項(xiàng)目中引入本地JAR包的步驟和配置
本文探討了在Spring Boot項(xiàng)目中引入本地JAR包的步驟和必要的配置,通過使用Maven的system作用域,開發(fā)者可以將自定義的本地庫(kù)或功能集成到Spring Boot應(yīng)用程序中,,需要的朋友可以參考下2023-10-10
IDEA-SpringBoot項(xiàng)目Debug啟動(dòng)不了(卡住不動(dòng))的原因分析
這篇文章主要介紹了IDEA-SpringBoot項(xiàng)目Debug啟動(dòng)不了(卡住不動(dòng))的原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
org.slf4j.Logger中info()方法的使用詳解
這篇文章主要介紹了org.slf4j.Logger中info()方法的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
java學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
這篇文章主要介紹了java學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Idea工具中使用Mapper對(duì)象有紅線的解決方法
mapper對(duì)象在service層有紅線,項(xiàng)目可以正常使用,想知道為什么會(huì)出現(xiàn)這種情,接下來通過本文給大家介紹下Idea工具中使用Mapper對(duì)象有紅線的問題,需要的朋友可以參考下2022-09-09
Java實(shí)現(xiàn)EasyCaptcha圖形驗(yàn)證碼的具體使用
Java圖形驗(yàn)證碼,支持gif、中文、算術(shù)等類型,可用于Java Web、JavaSE等項(xiàng)目,下面就跟隨小編一起來了解一下2021-08-08
Java 8新的時(shí)間日期庫(kù)的20個(gè)使用示例
這篇文章主要介紹了Java 8新的時(shí)間日期庫(kù)的20個(gè)使用示例,需要的朋友可以參考下2015-04-04

