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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM