使用fastjson 实现String转List、Map、JSON
直接上代码:
public static void testJSONParseArray() {
//造数据
Map map = new HashMap();
map.put("k11", "v11");
map.put("k12", "v12");
List list = new ArrayList();
Map map1 = new HashMap();
map1.put("k21", "v21");
map1.put("k22", "v22");
list.add(map);
list.add(map1);
//把list转成JSON形式的String
String listJson = JSONObject.toJSONString(list);
System.out.println(listJson);
//String转成JSSONArray形式
JSONArray jsonArray = JSONArray.parseArray(listJson);
System.out.println(jsonArray);
//用fastjson把JSON转成ListMap,借助非常好用的TypeReference
List<Map<String,Object>> param = JSONObject.parseObject(jsonArray.toJSONString(),new TypeReference<List<Map<String,Object>>>(){});
//遍历ListMap
for (Map<String,Object> mpIn : param){
//遍历小Map
for (Map.Entry<String, Object> mapEntrySet:mpIn.entrySet()){
System.out.println(mapEntrySet.getKey()+"=="+MapUtils.getString(mpIn,mapEntrySet.getKey(),""));
}
}
}
控制台输出:

String转Map
public static Map<String, Object> stringToMap(String listJson) {
//String转成JSONObject 形式
JSONObject jsonArray = JSONObject.parseObject(listJson);
System.out.println(jsonArray);
//用fastjson把JSON转成ListMap,借助非常好用的TypeReference
Map<String, Object> param = JSONObject.parseObject(jsonArray.toJSONString(), new TypeReference<Map<String, Object>>() {
});
//遍历Map
for (Map.Entry<String, Object> mapEntrySet : param.entrySet()) {
System.out.println(mapEntrySet.getKey() + "==" + MapUtils.getString(param, mapEntrySet.getKey(), ""));
}
return param;
}
String 转List<Map<String, String>>//(这个验证在第一段代码里面有)
List<Map<String, Object>> param = JSONObject.parseObject(String.valueOf(jsonArray), new TypeReference<List<Map<String, Object>>>() {
});
fastjson将json字符串转化成map的五种方法:
package com.zkn.newlearn.json;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
/**
* JSON字符串自动转换
*
*/
public class JsonToMapTest01 {
public static void main(String[] args){
String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
//第一种方式
Map maps = (Map)JSON.parse(str);
System.out.println("这个是用JSON类来解析JSON字符串!!!");
for (Object map : maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
}
//第二种方式
Map mapTypes = JSON.parseObject(str);
System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");
for (Object obj : mapTypes.keySet()){
System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));
}
//第三种方式
Map mapType = JSON.parseObject(str,Map.class);
System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");
for (Object obj : mapType.keySet()){
System.out.println("key为:"+obj+"值为:"+mapType.get(obj));
}
//第四种方式
/**
* JSONObject是Map接口的一个实现类
*/
Map json = (Map) JSONObject.parse(str);
System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第五种方式
/**
* JSONObject是Map接口的一个实现类
*/
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第六种方式
/**
* JSONObject是Map接口的一个实现类
*/
Map mapObj = JSONObject.parseObject(str,Map.class);
System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");
for (Object map: json.entrySet()){
System.out.println(((Map.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.println(json);
}
}
本文介绍了如何使用Fastjson库将JSON字符串转换为Map对象,包括五种不同的方法。通过示例代码详细展示了转换过程,并提供了String转List<Map<String, String>>的实例。"
51107275,1420274,理解SSO:单点登录系统的工作原理,"['身份验证', '安全性', 'Web开发', 'SSO体系结构', '认证流程']
1万+

被折叠的 条评论
为什么被折叠?



