java封装json格式工具类优化

来源:互联网 发布:网络教育有什么专业 编辑:程序博客网 时间:2024/05/19 16:03

需要調用的主要方法


/**
* @author:作者Lelonta
* @version:1.0
* 创建时间:2017-4-12 下午10:27:50
* 类说明
*/
public class MyJson {

/** * 返回成功数据 * @param resObj * @return */public static JSONObject returnSucc(Object resobj){    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40000");    //obj.put("info", "success");    obj.put("resobj", resobj);    JSONObject jsonObject = MakeJsonUtil.createJson(obj);    return jsonObject;}/** * 返回成功数据  * 排除不想要的数据字段 * @param resobj * @param excludes * @return */public static JSONObject returnSuccAndExclude(Object resobj,String[] excludes){    //定义一个map    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40000");    //obj.put("info", "success");    obj.put("resobj", resobj);    JSONObject jsonObject = MakeJsonUtil.createJsonExclude(obj, excludes);    return jsonObject;}/** * 返回成功数据以及其他相加的数据  * 排除不想要的数据字段 * @param resObj * @return */public static JSONObject returnSuccForOtherAndExclude(Object resobj,Object other        ,String[] excludes){    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40000");    //obj.put("info", "success");    obj.put("resobj", resobj);    obj.put("other", other);    JSONObject jsonObject = MakeJsonUtil.createJsonExclude(obj, excludes);     return jsonObject;}/** * 返回成功数据以及其他想加的数据 * @param resobj * @param other * @return */public static JSONObject returnSuccForOther(Object resobj,Object other){        Map<String, Object> obj = new HashMap<String, Object>();        obj.put("code", "40000");        //obj.put("info", "success");        obj.put("resobj", resobj);        obj.put("other", other);        JSONObject jsonObject = MakeJsonUtil.createJson(obj);        return jsonObject;    }/** * 返回错误结果 * @param resObj * @return */public static JSONObject returnFail(Object resobj){    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40004");    //obj.put("info", "success");    obj.put("resobj", resobj);    JSONObject jsonObject = MakeJsonUtil.createJson(obj);    return jsonObject;}/** * 返回错误数据 * 排除不想要的数据字段 * @param resobj * @param excludes * @return */public static JSONObject returnFailAndExclude(Object resobj,String[] excludes){    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40004");    //obj.put("info", "success");    obj.put("resobj", resobj);    JSONObject jsonObject = MakeJsonUtil.createJsonExclude(obj, excludes);     return jsonObject;}public static void main(String[] args) {    Map<String, Object> obj = new HashMap<String, Object>();    obj.put("code", "40000");    //obj.put("info", "success");    obj.put("resobj", "resobj");    obj.put("other", "other");    JsonConfig jsonConfig = new JsonConfig();      jsonConfig.setIgnoreDefaultExcludes(true);  //默认为false,即过滤默认的key      jsonConfig.setExcludes(new String[]{"other"});    jsonConfig.registerJsonValueProcessor(Date.class,                             new JsonDateValueProcessor());    JSONObject jsonObject = JSONObject.fromObject(obj,jsonConfig);     System.out.println(jsonObject);  }

}


封裝MakeJsonUtil方法 被myjson引用

//创建 jsonconfig对象
private static JsonConfig jsonConfig = null;

/** * 返回jsonobject * @param obj * @return */public static JSONObject createJson(Map<String, Object> obj) {    jsonConfig = new JsonConfig();    jsonConfig.registerJsonValueProcessor(Date.class,             new JsonDateValueProcessor());    JSONObject jsonObject = JSONObject.fromObject(obj,jsonConfig);    return jsonObject;}/** * 返回jsonobject,并且去除不想要的字段 * @param obj * @param excludes * @return */public static JSONObject createJsonExclude(Map<String, Object> obj,String[] excludes) {    jsonConfig = new JsonConfig();    jsonConfig.setExcludes(excludes);    jsonConfig.registerJsonValueProcessor(Date.class,             new JsonDateValueProcessor());    JSONObject jsonObject = JSONObject.fromObject(obj,jsonConfig);     return jsonObject;}

時間格式化 這個類可以從網上找到

public class JsonDateValueProcessor implements JsonValueProcessor {
private String format =”yyyy-MM-dd HH:mm:ss”;

public JsonDateValueProcessor() {    super();}public JsonDateValueProcessor(String format) {    super();    this.format = format;}public Object processArrayValue(Object paramObject,        JsonConfig paramJsonConfig) {    return process(paramObject);}public Object processObjectValue(String paramString, Object paramObject,        JsonConfig paramJsonConfig) {    return process(paramObject);}private Object process(Object value){    if(value instanceof Date){          SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);          return sdf.format(value);    }      return value == null ? "" : value.toString();  }

}


1 0