java之json串转Map的整理

在字符串的转义上,我们有对应的json可以解决,一般而言是用于数据的传输,其中处理其解析的包也比较多。这里我们可以用其中的方法来进行转换。本篇以json转换成map为例,带来两张解决方法:FastJSON和Collectors.toMap,下面一起来看看这两种方法的不同解决。

1.FastJSON方法

Fastjson是阿里巴巴封装的,性能更快。

packagecom.zkn.newlearn.json;

importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.JSONObject;
importjava.util.Map;

/**
*JSON字符串自动转换
*Createdbyzknon2016/8/22.
*/
publicclassJsonToMapTest01{

publicstaticvoidmain(String[]args){

Stringstr="{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
//第一种方式
Mapmaps=(Map)JSON.parse(str);
System.out.println("这个是用JSON类来解析JSON字符串!!!");
for(Objectmap:maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第二种方式
MapmapTypes=JSON.parseObject(str);
System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");
for(Objectobj:mapTypes.keySet()){
System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));
}
//第三种方式
MapmapType=JSON.parseObject(str,Map.class);
System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");
for(Objectobj:mapType.keySet()){
System.out.println("key为:"+obj+"值为:"+mapType.get(obj));
}
//第四种方式
/**
*JSONObject是Map接口的一个实现类
*/
Mapjson=(Map)JSONObject.parse(str);
System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第五种方式
/**
*JSONObject是Map接口的一个实现类
*/
JSONObjectjsonObject=JSONObject.parseObject(str);
System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
//第六种方式
/**
*JSONObject是Map接口的一个实现类
*/
MapmapObj=JSONObject.parseObject(str,Map.class);
System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");
for(Objectmap:json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+""+((Map.Entry)map).getValue());
}
StringstrArr="{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"},"+
"{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";
//JSONArray.parse()
System.out.println(json);
}
}

2.Collectors.toMap

json字符串其实总得来说就是一个key-value的形式,应该是满足了最终想要的Map<String, List<Unit>>的结构了,所以直接一个Collectors.toMap就搞定了。

Map<String,List<Unit>>result=JSONObject.parseObject(s)
.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,entry->JSONObject.parseArray(String.valueOf(entry.getValue()),Unit.class)));

注意s就是你那个json字符串。

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容