详解Java实现JSONArray转Map的三种实现方式
本文只是自己常用的三种,自己总结一下,不是只有这三种,杠精走开;
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实现JSONArray转Map的三种实现方式的文章就介绍至此,更多相关Java JSONArray转Map内容请搜索编程教程以前的文章,希望以后支持编程教程!
需要用到的知识:注解、AOP、ExpiringMap(带有有效期的映射)我们可以自定义注解,把注解添加到我们的接口上。定义一个切面,执行方法前去ExpiringMap查询该IP在规 ...