歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> JSON轉換為JAVA對象及日期格式轉換處理

JSON轉換為JAVA對象及日期格式轉換處理

日期:2017/3/1 10:24:43   编辑:Linux編程

1.JSON日期格式轉換

默認JSON對DATE類型會轉換成一個多屬性對象, 而不是單獨的一個字符串, 在某些應用處理上不是很方便, 可以利用JsonValueProcessor來實現日期的轉換.

默認格式:

"lastUpdate": {
"date": 29,
"day": 3,
"hours": 14,
"minutes": 46,
"month": 1,
"seconds": 41,
"time": 1330498001000,
"timezoneOffset": -480,
"year": 112
},

轉換後格式:

"lastUpdate": "2012-02-29 14:46:41"

自定義一個日期處理器:

  1. import java.text.SimpleDateFormat;
  2. import java.util.Date;
  3. import net.sf.json.JsonConfig;
  4. import net.sf.json.processors.JsonValueProcessor;
  5. /**
  6. * JSON日期格式轉換
  7. *
  8. */
  9. public class DateJsonValueProcessor implements JsonValueProcessor
  10. {
  11. private String format = "yyyy-MM-dd HH:mm:ss";
  12. public DateJsonValueProcessor()
  13. {
  14. }
  15. public DateJsonValueProcessor(String format)
  16. {
  17. this.format = format;
  18. }
  19. public Object processArrayValue(Object value, JsonConfig jsonConfig)
  20. {
  21. String[] obj = {};
  22. if (value instanceof Date[])
  23. {
  24. SimpleDateFormat sf = new SimpleDateFormat(format);
  25. Date[] dates = (Date[]) value;
  26. obj = new String[dates.length];
  27. for (int i = 0; i < dates.length; i++)
  28. {
  29. obj[i] = sf.format(dates[i]);
  30. }
  31. }
  32. return obj;
  33. }
  34. public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)
  35. {
  36. if (value instanceof Date)
  37. {
  38. String str = new SimpleDateFormat(format).format((Date) value);
  39. return str;
  40. }
  41. return value;
  42. }
  43. public String getFormat()
  44. {
  45. return format;
  46. }
  47. public void setFormat(String format)
  48. {
  49. this.format = format;
  50. }
  51. }

轉換調用代碼:

  1. JsonConfig jsonConfig = new JsonConfig();
  2. jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());
  3. JSONObject jsonObj = JSONObject.fromObject(bean, jsonConfig);
  4. return jsonObj.toString();
Copyright © Linux教程網 All Rights Reserved