JsonUtil和JsonResult

来源:互联网 发布:温州领导干部网络学堂 编辑:程序博客网 时间:2024/06/05 06:25

在Java后台返回给前端数据时候转成json格式,JsonUtil就是转换工具:

JsonUtil

public class JSONUtil {private static final SerializerFeature[] features = {SerializerFeature.SkipTransientField,// 过滤transient字段            SerializerFeature.WriteDateUseDateFormat,// 使用日期格式化      SerializerFeature.WriteMapNullValue, // 输出空置字段SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是nullSerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是nullSerializerFeature.WriteNullStringAsEmpty // 字符类型字段如果为null,输出为"",而不是null};//修改时间格式public static String JsonString(Object object) {JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";return JSONObject.toJSONString(object,SerializerFeature.SkipTransientField,// 过滤transient字段            SerializerFeature.WriteDateUseDateFormat,// 使用日期格式化      SerializerFeature.WriteMapNullValue, // 输出空置字段SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是nullSerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是nullSerializerFeature.WriteNullStringAsEmpty);// 字符类型字段如果为null,输出为"",而不是null );}/** *zhege you went  * @param object * @return */public static String toJsonString(Object object) {return JSONObject.toJSONString(object, features);}public static String toJsonpString(Object obj, String callback) {return callback + "(" + toJsonString(obj) + ")";}public static Object parseObjectOrArray(String json, Class<?> clazz) {Object o = JSON.parse(json);if (o instanceof JSONArray) {o = JSONObject.parseArray(json, clazz);} else {o = JSONObject.parseObject(json, clazz);}return o;}public static <T> T parseObject(String json, Class<T> clazz) {return JSONObject.parseObject(json, clazz);}public static <T> List<T> parseArray(String json, Class<T> clazz) {return JSONObject.parseArray(json, clazz);}/** * 该方法在某些特殊场景使用,如果要转数组,可以使用parseArray方法 *  * @param json * @return */public static Object[] parseObjectArray(String json) {List<Object> list = JSONObject.parseArray(json, Object.class);return list.toArray();}}
JsonResult:

/** * 返回json封装对象<br> * 如果失败code = -1 ,如果成功 code = 1,特殊情况请自己定义返回码<br > * 如果错误信息,code小于0<br > * 如果成功信息,code大于0 */public class JsonResult {protected Integer code;protected String message;protected Object rows;public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Object getRows() {return rows;}public void setRows(Object rows) {this.rows = rows;}public JsonResult() {this.code = 0;this.message = null;this.rows = null;}public JsonResult(Integer code, String message, Object rows) {this.code = code;this.message = message;this.rows = rows;}}
在java的Controller调用:

    @RequestMapping(value = "datamonitor/increatedata", produces = "application/json;charset=UTF-8")    public String increatedata(String callback) {        PageData pd = new PageData();        pd = this.getPageData();        List<PageData> list=null;        try {            list=dataMonitorService.getDataList(pd);            return JSONUtil.toJsonpString(new JsonResult(1, "成功!", list),callback);//跨域时候使用的Jsonp        } catch (Exception e) {            e.printStackTrace();            logger.error("错误:"+e.toString());            return JSONUtil.toJsonString(new JsonResult(-1, "失败:服务器内部错误!", null));        }    }
正常返回时候使用JsonUtil.toJsonString就可以了,跨域时候使用的JsonUtil.toJsonpString。





原创粉丝点击