Java中的JsonConfig详解

JSON lib能够将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象。
无论出于何种原因,某些时候,我们需要对对象转为字符串的过程加以控制,最常见需求如数值格式化和日期格式化。JSON lib提供了JsonConfig对象,该对象能够深刻影响Java对象转成json字符串的行为。
比如我们要控制JSON序列化过程中的Date对象的格式化,以及数值的格式化,JsonValueProcessor是最好的选择。

(1)JsonValueProcessor
Example:
java里面时间类型转换成json数据就成这样了:

“createTime”:{“date”:30,”day”:3,”hours”:15,”minutes”:14,”month”:3,”nanos”:0,”seconds”
:38,”time”:1209539678000,”timezoneOffset”:-480,”year”:108}

期望的结果是”yyyy-mm–dd”

解决方案:使用jsonConfig即可

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));

(2)setIgnoreDefaultExcludes
Example:

@SuppressWarnings("unchecked")
public static void testMap() {
Map map = new HashMap();
map.put("name", "json");
map.put("class", "ddd");
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(true); //默认为false,即过滤默认的key

JSONObject jsonObject = JSONObject.fromObject(map,config);
System.out.println(jsonObject);
}

上面的代码会把name 和 class都输出

而去掉setIgnoreDefaultExcludes(true)的话,就只会输出name,不会输出class。


 上一篇
关于$.ajax()中使用serialize()提交form表单数据 关于$.ajax()中使用serialize()提交form表单数据
提交多个数据时,不需要一个一个将获取的值传给ajax,可以直接使用$(“form”).serialize()将其表单序列化的值传给ajax()作为url的参数,轻松使用ajax提交form表单了。例: $.ajax({ type:'post
2019-01-20
下一篇 
StringUtils.isEmpty用法 StringUtils.isEmpty用法
StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPoin
2019-01-20
  目录