封装fastjson工具类

导入Apache POI Maven jar包

<!-- SpringBoot 整合 alibabaJSON -->
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.47</version>
</dependency>

编写工具类

import com.alibaba.fastjson.JSONObject;
import org.springframework.util.StringUtils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @description: json工具类
 * @author: YeZhiJian
 * @create: 2020-03-26 11-29-53
 **/
public class JsonUtil {
    // 私有构造器
    private JsonUtil(){}
    // 定义JSONObject
    private static JSONObject resultJson = new JSONObject();
    // 定义Map
    private static Map<String, Object> resultMap = new HashMap<>();

    /**
     *  XML字符串转JSONObject
     * @param xMLString
     * @return
     */
    public static JSONObject xMLToJSONObject(String xMLString){
        // 去空格
        xMLString = xMLString.trim();
        // 判断是否空
        if (StringUtils.isEmpty(xMLString))
        return resultJson;
        String[] split = xMLString.split("<");
        for (int i = 0; i < split.length-1; i++){
            if(i%2 == 1){
                String[] split1 = split[i].split(">");
                resultJson.put(split1[0], split1[1]);
            }
        }
        return resultJson;
    }

    /**
     *  JSONObject转XML字符串
     * @param jsonObject
     * @return
     */
    public static String jsonObjectToXML(JSONObject jsonObject){
        StringBuffer stringBuffer = new StringBuffer("");
        Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator();
        // 遍历填充数据
        while (iterator.hasNext()){
            java.util.Map.Entry entry = (java.util.Map.Entry)iterator.next();
            String key = "<" + entry.getKey().toString() + ">";
            stringBuffer.append(key + entry.getValue() + key.replace("<", "</"));
        }
        return stringBuffer.toString();
    }

    /**
     *  jsonObject转Map
     * @param jsonObject
     * @return
     */
    public static Map<String, Object> jsonObjectToMap(JSONObject jsonObject){
        Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator();
        // 遍历填充数据
        while (iterator.hasNext()){
            java.util.Map.Entry entry = (java.util.Map.Entry)iterator.next();
            resultMap.put(entry.getKey().toString(), entry.getValue());
        }
        return resultMap;
    }

    /**
     *  JSONObject转Bean
     * @param className
     * @param jsonObject
     * @return
     * @throws ClassNotFoundException
     */
    public static Object jsonObjectToBean(String className, JSONObject jsonObject) throws ClassNotFoundException {
        return jsonObject.toJavaObject(Class.forName(className));
    }

    /**
     *  map转JSONObject
     * @param map
     * @return
     */
    public static JSONObject mapToJSONObject(Map<String, Object> map){
        Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
        // 遍历填充数据
        while (iterator.hasNext()){
            java.util.Map.Entry entry = (java.util.Map.Entry)iterator.next();
            resultJson.put(entry.getKey().toString(), entry.getValue());
        }
        return resultJson;
    }

    /**
     *  bean转JSONObject
     * @param object
     * @return
     * @throws Exception
     */
    public static JSONObject beanToJSONObject(Object object) throws Exception {
        Class<?> aClass = object.getClass();
        // 获取所有属性
        Field[] fields = aClass.getDeclaredFields();
        for (Field field : fields) {
            String name = field.getName();
            // 调用方法获取属性值
            Method method = object.getClass().getMethod("get" + getMethodName(field.getName()));
            resultJson.put(name, method.invoke(object));
        }
        return resultJson;
    }

    /**
     *  把一个字符串的第一个字母大写
     * @param fildeName
     * @return
     * @throws Exception
     */
    private static String getMethodName(String fildeName) throws Exception{
        byte[] items = fildeName.getBytes();
        items[0] = (byte) ((char) items[0] - 'a' + 'A');
        return new String(items);
    }


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值