Java工具类-通用对象转换为Json字符
都依凡
撰写于 2024年 04月 01 日

Java工具类-通用对象转换为Json字符

import com.alibaba.fastjson2.JSONObject;

import java.lang.reflect.Field;
import java.text.SimpleDateFormat;

public class JsonObjectUtlis {

    public static <U> JSONObject processEntityToJson(Class<U> clazz, U cla) {
        //将传过来的对象进行赋值处理,
        //此时u可用来代表传过来的对象(本示意中是Users),
        //此时可以用u调用传过来对象的方法
        U u = clazz.cast(cla);
        //以下是验证此示意中实体类可被操作了
        //getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
        //.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的
        JSONObject jsonObject = new JSONObject();
        for (Field field : u.getClass().getDeclaredFields()) {
            //允许获取实体类private的参数信息 field.setAccessible(true);
            field.setAccessible(true);
            try {
                String name = field.getType().getName();
                if ("java.util.Date".equals(name) && field.get(u) != null) {
                    String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(field.get(u));
                    if (dateStr.indexOf("00:00:00") > 0){
                        dateStr = dateStr.substring(0,10) ;
                    }
                    jsonObject.put(field.getName(), dateStr);
                }else {
                    jsonObject.put(field.getName(), field.get(u));
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
                jsonObject.put("convertJsonStatus",500);
                return jsonObject;
            }
        }
        return jsonObject;
    }
}

使用例子

        JSONObject jsonObject = JsonObjectUtlis.processEntityToJson(JudgeResultSynchronizationMatVO.class, synchronizationVO);
        // 第一个参数为对象的Clss类    第二个入参为实际对象

Json判断

判断当前字符串是不是Json字符串,是JSON返回True 否则返回false
public static boolean isjson(String str) {
        try {
            JSONObject jsonStr = JSONObject.parseObject(str);
            return  true;
        } catch (Exception e) {
            return false;
        }
}

Java工具类-通用对象转换为Json字符

Java工具类-通用对象转换为Json字符

import com.alibaba.fastjson2.JSONObject;

import java.lang.reflect.Field;
import java.text.SimpleDateFormat;

public class JsonObjectUtlis {

    public static <U> JSONObject processEntityToJson(Class<U> clazz, U cla) {
        //将传过来的对象进行赋值处理,
        //此时u可用来代表传过来的对象(本示意中是Users),
        //此时可以用u调用传过来对象的方法
        U u = clazz.cast(cla);
        //以下是验证此示意中实体类可被操作了
        //getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
        //.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的
        JSONObject jsonObject = new JSONObject();
        for (Field field : u.getClass().getDeclaredFields()) {
            //允许获取实体类private的参数信息 field.setAccessible(true);
            field.setAccessible(true);
            try {
                String name = field.getType().getName();
                if ("java.util.Date".equals(name) && field.get(u) != null) {
                    String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(field.get(u));
                    if (dateStr.indexOf("00:00:00") > 0){
                        dateStr = dateStr.substring(0,10) ;
                    }
                    jsonObject.put(field.getName(), dateStr);
                }else {
                    jsonObject.put(field.getName(), field.get(u));
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
                jsonObject.put("convertJsonStatus",500);
                return jsonObject;
            }
        }
        return jsonObject;
    }
}

使用例子

        JSONObject jsonObject = JsonObjectUtlis.processEntityToJson(JudgeResultSynchronizationMatVO.class, synchronizationVO);
        // 第一个参数为对象的Clss类    第二个入参为实际对象

Json判断

判断当前字符串是不是Json字符串,是JSON返回True 否则返回false
public static boolean isjson(String str) {
        try {
            JSONObject jsonStr = JSONObject.parseObject(str);
            return  true;
        } catch (Exception e) {
            return false;
        }
}

版权属于:都依凡 所有,采用《知识共享署名许可协议》进行许可,转载请注明文章来源。

本文链接: http://blog.anlucky.cn/index.php/programming/java/213

赞 (1)

评论区(暂无评论)

啊哦,评论功能已关闭~