fastjson实现{ "学历": ["本科", "研究生"], "性别": ["男", "女"] }json格式转Map(String,List)
时间: 2023-09-02 14:05:39 浏览: 59
可以使用fastjson的JSONObject类,将json字符串转换为JSONObject对象,然后通过调用entrySet()方法获取JSONObject对象中键值对的集合,再将其转换为Map<String,List>类型。具体代码如下:
```
import com.alibaba.fastjson.JSONObject;
import java.util.*;
public class JsonToMap {
public static Map<String,List<String>> jsonToMap(String jsonStr) {
//将json字符串转换为JSONObject对象
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
//获取JSONObject对象中键值对的集合
Set<Map.Entry<String,Object>> entrySet = jsonObject.entrySet();
//创建Map<String,List>类型的Map对象
Map<String,List<String>> map = new HashMap<>();
//遍历键值对的集合,将值转换为List类型并放入Map中
for(Map.Entry<String,Object> entry : entrySet) {
String key = entry.getKey();
List<String> value = JSONObject.parseArray(entry.getValue().toString(), String.class);
map.put(key, value);
}
//返回Map对象
return map;
}
public static void main(String[] args) {
String jsonStr = "{ \"学历\": [\"本科\", \"研究生\"], \"性别\": [\"男\", \"女\"] }";
Map<String,List<String>> map = jsonToMap(jsonStr);
System.out.println(map);
}
}
```
阅读全文