这篇“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字符串。
