zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    Best Cow Line(POJ No.3617)
    迷宫的最短路径
    Lak3 Counting(POJ No.2386)
    【日志】-2013.11.02
    用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)
    用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
    【日志】-2013.11.01
    (转载)HTML与XHTML有什么区别
    (转载)linux环境变量
    转载-KMP算法前缀数组优雅实现
  • 原文地址:https://www.cnblogs.com/jbml-154312/p/7251525.html
Copyright © 2011-2022 走看看