详解Java实现JSONArray转Map的三种实现方式
时间:2022-11-02 11:00:14|栏目:JAVA代码|点击: 次
本文只是自己常用的三种,自己总结一下,不是只有这三种,杠精走开;
JSONArray数据
[ { "flagType": 1, "flagIcon": "1.jpg" }, { "flagType": 2, "flagIcon": "2.jpg" }, { "flagType": 3, "flagIcon": "3.jpg" }, { "flagType": 4, "flagIcon": "4.jpg" } ]
要转成目标数据
{ 1:"1.jpg", 2:"2.jpg", 3:"3.jpg", 4:"4.jpg" }
第一种
JSONArray jsonArray= new JSONArray(); //填充初始数据,此处过程省略 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(); //填充初始数据,此处过程省略 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(); //填充初始数据,此处过程省略 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")); }); }
上一篇:java实现连连看游戏课程设计
栏 目:JAVA代码
本文标题:详解Java实现JSONArray转Map的三种实现方式
本文地址:http://www.codeinn.net/misctech/217951.html