这篇“java之json串如何转Map”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java之json串如何转Map”文章吧。
1.FastJSON方法
Fastjson是阿里巴巴封装的,性能更快。
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import java.util.Map; /** * JSON字符串自动转换 * Created by zkn on 2016/8/22. */ public class JsonToMapTest01 { public static void mainString[] args){ String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}"; //第一种方式 Map maps = Map)JSON.parsestr); System.out.println"这个是用JSON类来解析JSON字符串!!!"); for Object map : maps.entrySet)){ System.out.printlnMap.Entry)map).getKey)+" " + Map.Entry)map).getValue)); } //第二种方式 Map mapTypes = JSON.parseObjectstr); System.out.println"这个是用JSON类的parseObject来解析JSON字符串!!!"); for Object obj : mapTypes.keySet)){ System.out.println"key为:"+obj+"值为:"+mapTypes.getobj)); } //第三种方式 Map mapType = JSON.parseObjectstr,Map.class); System.out.println"这个是用JSON类,指定解析类型,来解析JSON字符串!!!"); for Object obj : mapType.keySet)){ System.out.println"key为:"+obj+"值为:"+mapType.getobj)); } //第四种方式 /** * JSONObject是Map接口的一个实现类 */ Map json = Map) JSONObject.parsestr); System.out.println"这个是用JSONObject类的parse方法来解析JSON字符串!!!"); for Object map : json.entrySet)){ System.out.printlnMap.Entry)map).getKey)+" "+Map.Entry)map).getValue)); } //第五种方式 /** * JSONObject是Map接口的一个实现类 */ JSONObject jsonObject = JSONObject.parseObjectstr); System.out.println"这个是用JSONObject的parseObject方法来解析JSON字符串!!!"); for Object map : json.entrySet)){ System.out.printlnMap.Entry)map).getKey)+" "+Map.Entry)map).getValue)); } //第六种方式 /** * JSONObject是Map接口的一个实现类 */ Map mapObj = JSONObject.parseObjectstr,Map.class); System.out.println"这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!"); for Object map: json.entrySet)){ System.out.printlnMap.Entry)map).getKey)+" "+Map.Entry)map).getValue)); } String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," + "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}"; // JSONArray.parse) System.out.printlnjson); } }
2.Collectors.toMap
json字符串其实总得来说就是一个key-value的形式,应该是满足了最终想要的Map<String, List<Unit>>的结构了,所以直接一个Collectors.toMap就搞定了。
Map<String, List<Unit>> result = JSONObject.parseObjects) .entrySet).stream) .collectCollectors.toMapMap.Entry::getKey, entry -> JSONObject.parseArrayString.valueOfentry.getValue)), Unit.class)));
注意s就是你那个json字符串。