开发工具与关键技术:Eclipse 10、java
作者:梁添荣
撰写时间:2020-04-28

有时我们传到页面的json数据,如果有日期格式,则不会以我们想要的格式去输出,这是我们可以自定义工具,对日期进行转换相应的格式,以下有三种方法,对应三种日期格式!
第一种:


/*说明:
 * 把集合里的数据序列化成json格式,并根据参数str的状态把数据的data类型转换成常用的时间格式;
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @param str 若不为null时,且数据中有data类型,str的元素名与date类型属性名对应,则转string类型,格式为yyyy-MM-dd HH:mm:ss,
 * 没有添加到str里的date类型的属性名,则为yyyy-MM-dd格式;
 * 当str为null,所有data类型格式为yyyy-MM-dd* @return
/
 public static String toJson(Integer curPage,Integer totalRows,Collection<?> list,boolean success,final String[] str) {
 JsonConfig jsonConfig=new JsonConfig();
 jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {
 @Override
 public Object processObjectValue(String key, Object value, JsonConfig config) {
 if(str!=null) {
 for (String string : str) {
 if(key.equalsIgnoreCase(string)) {
 return new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format((Date) value);
 }
 }
 }
 return new SimpleDateFormat(“yyyy-MM-dd”).format((Date) value);
 }
 @Override
 public Object processArrayValue(Object arg0, JsonConfig arg1) {
 // TODO Auto-generated method stub
 return null;
 }
 });
 //ps:ssm查询时list没有数据时,list!=null的,所以不会报错
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(list!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,list);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSONObject.fromObject(map, jsonConfig).toString();
 }


第二种

/
 * 说明:
 * 把集合里的数据序列化成json格式,数据的data类型转换成yyyy-MM-dd格式
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @return
 */
 public static String toJsonYmd(Integer curPage, Integer totalRows, List data, boolean success) {
 com.alibaba.fastjson.JSONObject.DEFFAULT_DATE_FORMAT=“yyyy-MM-dd”;
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(data!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,data);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSON.toJSONString(map,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteMapNullValue);
 }

第三种

/**
 * 说明:
 * 把集合里的数据序列化成json格式,数据的data类型转换成yyyy-MM-dd HH:mm:ss格式
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @return
 */
 public static String toJsonHms(Integer curPage, Integer totalRows, List data, boolean success) {
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(data!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,data);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSON.toJSONString(map,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteMapNullValue);
 }


对象转换字符串格式的JSON

开发工具与关键技术:Eclipse 10、java
作者:梁添荣
撰写时间:2020-04-28

有时我们传到页面的json数据,如果有日期格式,则不会以我们想要的格式去输出,这是我们可以自定义工具,对日期进行转换相应的格式,以下有三种方法,对应三种日期格式!
第一种:

/*说明:
 * 把集合里的数据序列化成json格式,并根据参数str的状态把数据的data类型转换成常用的时间格式;
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @param str 若不为null时,且数据中有data类型,str的元素名与date类型属性名对应,则转string类型,格式为yyyy-MM-dd HH:mm:ss,
 * 没有添加到str里的date类型的属性名,则为yyyy-MM-dd格式;
 * 当str为null,所有data类型格式为yyyy-MM-dd
 * @return
/
 public static String toJson(Integer curPage,Integer totalRows,Collection<?> list,boolean success,final String[] str) {
 JsonConfig jsonConfig=new JsonConfig();
 jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {
 @Override
 public Object processObjectValue(String key, Object value, JsonConfig config) {
 if(str!=null) {
 for (String string : str) {
 if(key.equalsIgnoreCase(string)) {
 return new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format((Date) value);
 }
 }
 }
 return new SimpleDateFormat(“yyyy-MM-dd”).format((Date) value);
 }
 @Override
 public Object processArrayValue(Object arg0, JsonConfig arg1) {
 // TODO Auto-generated method stub
 return null;
 }
 });
 //ps:ssm查询时list没有数据时,list!=null的,所以不会报错
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(list!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,list);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSONObject.fromObject(map, jsonConfig).toString();
 }


第二种

/
 * 说明:
 * 把集合里的数据序列化成json格式,数据的data类型转换成yyyy-MM-dd格式
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @return
 */
 public static String toJsonYmd(Integer curPage, Integer totalRows, List data, boolean success) {
 com.alibaba.fastjson.JSONObject.DEFFAULT_DATE_FORMAT=“yyyy-MM-dd”;
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(data!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,data);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSON.toJSONString(map,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteMapNullValue);
 }

第三种

/**
 * 说明:
 * 把集合里的数据序列化成json格式,数据的data类型转换成yyyy-MM-dd HH:mm:ss格式
 * 该json格式里有与bsgrid表格对应的值,所以页面bsgrid插件能接受,不用bsgrid类来设置。
 * @param curPage 当前页
 * @param list 集合数据
 * @param totalRows 总条数
 * @param success 是否加载数据
 * @return
 */
 public static String toJsonHms(Integer curPage, Integer totalRows, List data, boolean success) {
 Map<String, Object> map=new HashMap<String, Object>();
 map.put(“curPage”, curPage);
 map.put(“success”, success);
 if(data!=null) {//避免为null
 map.put(“totalRows”, totalRows);
 map.put(“data”,data);
 }else {
 map.put(“totalRows”, 0);
 map.put(“data”,0);
 }
 return JSON.toJSONString(map,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteMapNullValue);
 }