对象转换字符串格式的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);
}
对象转换字符串格式的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);
}

猜你喜欢

转载自blog.csdn.net/weixin_44619313/article/details/105817316
今日推荐