JSON 工具类封装


package wms.common;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
import wms.entity.ResultBean;

import java.util.Date;
import java.util.List;

/**
 * 
 * DESC: 封装一个结果类型的字符串,包括success和msg两个字段
 */
public class JsonFormat {
  //格式化日期
private static String dateFormat; static { dateFormat = "yyyy-MM-dd HH:mm:ss"; } private static SerializeConfig mapping = new SerializeConfig(); static { //jackson默认写出的时间数据为时间戳, 这里修改为相应模式的时间数据输出格式 mapping.put(Date.class, new SimpleDateFormatSerializer(dateFormat)); } /** * 将对象或集合转换为json字符串 * @param obj * @return */ public final static String toString(Object obj){ return JSONObject.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue); } /** * 将对象或集合转换为json字符串 * @param obj * @return */ public final static String toStringWithoutNull(Object obj){ return JSONObject.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss"); } /** * 将结果字符串转换为标准结果集 * @param success * @param msg * @return {"success":success,"msg":msg} */ public final static String toStringResult(boolean success, String msg){ return String.format("{\"success\":%s,\"msg\":\"%s\"}", success?"true":"false", msg); } public final static String toStatusResult(int status, Object data){ return String.format("{\"status\":%s,\"data\":%s}", status, toString(data)); } public final static String toStatusResult(ResultBean data){ if (data.getData() instanceof String) return data.toString(); else return toStatusResult(data.getStatus(), data.getData()); } /** * 将对象转换为标准结果集 * @param success * @param msg * @return {"success":success,"msg":msg} */ public final static String toObjectResult(boolean success, Object msg){ if (msg != null) return String.format("{\"success\":%s,\"msg\":%s}", success, JSONObject.toJSONStringWithDateFormat(msg, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue)); else //把null集合转换为[],是为了kendo ui dataSource,直接返回null,会出现Status code=200的异常 return String.format("{\"success\":%s,\"msg\":\"[]\"}", success); } public final static String toString(String key, Object msg){ return String.format("{\"%s\":%s}", key, JSONObject.toJSONStringWithDateFormat(msg, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue)); } public final static String toPageString(Integer total, List data){ if (total == null || total == 0) return emptyPageString(); return String.format("{\"total\":%s, \"data\":%s}", total, JSONObject.toJSONStringWithDateFormat(data, "yyyy-MM-dd HH:mm:ss")); } public final static String toPageString(List data){ if (data.size() == 0) return emptyPageString(); return String.format("{\"total\":%s, \"data\":%s}", data.size(), JSONObject.toJSONStringWithDateFormat(data, "yyyy-MM-dd HH:mm:ss")); } public final static String emptyPageString(){ return "{\"total\":0, \"data\":\"\"}"; } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM