package cn.autoform.util.tool; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.serializer.SerializerFeature; import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Type; import java.util.List; /** * json转换工具 * @author WangYX * */ @Slf4j public class JSONTool { /** * @param obj * @return * 对象转化为jSON字符串 */ public static String toJson(Object obj, SerializerFeature... features){ try{ return JSON.toJSONString(obj, features); }catch (Exception e) { log.error(e.getMessage()); return null; } } /** * @param s * @return * jSON字符串转化为集合 */ public static List toList(String s,Class c){ try { return JSON.parseArray(s, c); } catch (Exception e) { log.error(e.getMessage(), e); return null; } } /** * 简单转换 * @param s * @param c * @return * 字符串转化为对象 */ public static T toObj(String s,Class c, Feature... features){ try { return JSON.parseObject(s, c, features); } catch (Exception e) { log.error(e.getMessage(), e); return null; } } /** * 根据泛型转换 * 例:JSON.parseObject(json, new TypeReference>(){}) * @param json * @param type * @return */ public static T toObj(String json, TypeReference type, Feature... features){ try{ return JSON.parseObject(json, type, features); } catch (Exception e) { log.error(e.getMessage(), e); return null; } } /** * 根据泛型转换 * 例:JSON.parseObject(json, new JavaType>()) * @param json * @param type * @return */ public static T toObj(String json, Type type, Feature... features){ try{ return JSON.parseObject(json, type, features); } catch (Exception e) { log.error(e.getMessage(), e); return null; } } /** * 泛型类型设置 * @author WangYX * * @param */ // public static class JavaType extends TypeReference{} }