Java对象转为JSON

最近有个项目需求:kafka监听MySQL某个表,比如goods表。如果goods表某些字段(比如商品名称和商品id)发生变化,则向rabbitMQ发送消息,通知某些关注项目该goods表发生变化。

1.分析

某些关注字段(商品名称和商品id)发生变化,我们可以将这些发生变化的字段单独写成一个类,然后将关注字段类转换为JSON,比较发生变化前后的JSON,如果一样,说明是非关注字段发生变化。如果不一样,则是关注字段发生变化,则向MQ发送消息。

2.代码

此篇文章只写JAVA对象转为JSON的代码。

public static String ObjectToJson(Object OiObj) throws Exception {
        // 属性和属性值的拼接
        java.lang.String nFieldAndValue = "{";
        // 解析后的属性
        java.lang.String nField = "";
        // 解析后的属性值
        java.lang.String nValue = "";
        // 1.得到实体的所有属性数组
        java.lang.reflect.Field[] fields = OiObj.getClass().getDeclaredFields();
        // 2.循环取出属性
        for (java.lang.reflect.Field field : fields) {
            // 2.1设置些属性是可以访问的
            field.setAccessible(true);
            // 2.2得到字段
            nField = field.getName();
            // 2.3得到字段值
            nValue = (field.get(OiObj)) + "";
            // 2.4拼接属性和属性值
            if (nValue != null) {
                nFieldAndValue += "\"" + nField + "\":\"" + nValue + "\"" + ",";
            }
        }
        // 3.返回时去掉最后面的逗号
        return nFieldAndValue.substring(0, nFieldAndValue.length() - 1) + "}";
    }

你可能感兴趣的:(Java对象转为JSON)