package com.jsh.erp.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.ValueFilter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.TimeZone; public class ResponseJsonUtil { public static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd"); static { FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+8")); } /** * 响应过滤器 */ public static final class ResponseFilter extends ExtJsonUtils.ExtFilter implements ValueFilter { @Override public Object process(Object object, String name, Object value) { if (name.equals("createTime") || name.equals("modifyTime")||name.equals("updateTime")) { return value; } else if (value instanceof Date) { return FORMAT.format(value); } else { return value; } } } /** * * @param responseCode * @return */ public static String backJson4HttpApi(ResponseCode responseCode) { if (responseCode != null) { String result = JSON.toJSONString(responseCode, new ResponseFilter(), SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteNonStringKeyAsString); result = result.replaceFirst("\"data\":\\{", ""); return result.substring(0, result.length() - 1); } return null; } /** * 验证失败的json串 * @param code * @return */ public static String backJson4VerifyFailure(int code) { Map map = new HashMap(); map.put("message", "未通过验证"); return JSON.toJSONString(new ResponseCode(code, map), new ResponseFilter(), SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteNonStringKeyAsString); } /** * 成功的json串 * @param responseCode * @return */ public static String backJson(ResponseCode responseCode) { if (responseCode != null) { return JSON.toJSONString(responseCode, new ResponseFilter(), SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteNonStringKeyAsString); } return null; } public static String returnJson(Map map, String message, int code) { map.put("message", message); return backJson(new ResponseCode(code, map)); } }