100个Java工具类之12:JSON、JSON字符串和对象三者互转
该系列为java工具类系列,主要展示100个常用的java工具类。
本系列工具类的核心目的主要有三点:
1,以便他用:提供可用的Java工具类,方便大家使用,避免重复造轮子
2,个人记录:作为个人记录,同时督促自己学习总结
3,为初学者提供思路,相互交流,共同进步
当然,很多细节部分经不起推敲,如存在部分代码不规范、注释不详细、格式不统一等问题,还望阅读者多多包涵,多提意见。
本文主要讲述:JSON、JSON字符串和对象三者互相转换的工具类
一、JSON字符串和JSON互转
//JSON字符串转JSON
private static JSONObject jsonStrToJson(String jsonStr) {
JSONObject jsonObj = JSON.parseObject(jsonStr);
return jsonObj;
}
//JSON转JSON字符串
private static String jsonToJsonStr(JSONObject jsonObj) {
return jsonObj.toString();
}
二、JSON字符串和对象互转
//JSON字符串转对象
public static T toBean(String jsonString, Class bean) {
T t = (T) JSON.parseObject(jsonString, bean);
return t;
}
//对象转JSON字符串
Student student = new Student();
String str = student.toStirng();
//可以重写对象的toString方法
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
三、JSON和对象互转
//JSON转对象
public static T jsonToObj(JSONObject json, Class bean) {
T t = (T) JSON.parseObject(json.toString(), bean);
return t;
}
//对象转JSON
public static JSONObject objectToJson(T obj) throws JSONException, IOException {
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(obj);
JSONObject jsonObj = JSON.parseObject(jsonStr);
return jsonObj;
}
实际场景中,不全是这么简单的互转,尤其是复杂的数据结构,数据的转换也是非常麻烦的,稍不留意就会报错,特别是动态数据,需要考虑到数据异常,数据为空的情况。
本文仅供个人记录,如有任何问题可在评论区提问,欢迎大家交流。