前言
工作总结,经常会遇到Json、Map、Object 之间的转换,本文记录下方法。
正文
JSON转换成Map
import com.alibaba.fastjson.JSONObject;
Map<String, Object> map= (Map<String, Object>)JSONObject.parse(jsonStr);
Map转换成JSON
import com.alibaba.fastjson.JSONObject;
String jsonStr = JSONObject.toJSONString(objectMap)
JSON转Object
import com.alibaba.fastjson.JSON;
Object object = JSON.toJavaObject(JSON.parseObject(jsonStr),Object.class);
import com.alibaba.fastjson.JSONObject;
Object object = JSONObject.parse(jsonStr);
Object转JSON
import com.alibaba.fastjson.JSON;
String jsonStr = JSON.toJSONString(object);
Object转map
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(object),new TypeReference<Map<String,Object>>(){});
JAVA8-List转Map
/**
* List -> Map
* 需要注意的是:
* toMap 如果集合对象有重复的key,会报错Duplicate key ....
* ob1,ob2的id都为1。
* 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
*/
Map<Integer, Object> obMap = obList.stream().collect(Collectors.toMap(Object::getId, a -> a,(k1,k2)->k1));
JSONArray 转List
List<class> list = JSONObject.parseArray(jsonArray.toJSONString(), class);
结语
有其他方法,欢迎留言告知