1. 程式人生 > >json Date型別資料處理

json Date型別資料處理

我們經常使用 JSONArray array=JSONArray.fromObject() 將物件集合  List  轉換成jsp所需的   JSONArray   形式

但是當處理到的  List  中包含  Date  型別的資料時,會出現錯誤。

此時,我們應該怎麼解決這個問題。

JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans.

某些時候,我們需要對物件轉為字串的過程加以控制,最常見需求如數值格式化和日期格式化。

JSON lib提供了JsonConfig物件,該物件能夠深刻影響Java物件轉成json字串的行為。

我們要控制JSON序列化過程中的Date物件的格式化,以及數值的格式化,JsonValueProcessor是最好的選擇。

首先,我們應定義一個日期處理類:

import java.text.SimpleDateFormat;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
* json-lib 日期處理類
* @author Administrator
*
*/
public class DateJsonValueProcessor implements JsonValueProcessor{

private String format; 

public DateJsonValueProcessor(String format){ 
this.format = format; 


public Object processArrayValue(Object value, JsonConfig jsonConfig) {
// TODO Auto-generated method stub
return null;
}

public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
if(value == null) 

return ""; 

if(value instanceof java.sql.Timestamp) 

String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value); 
return str; 

if (value instanceof java.util.Date) 

String str = new SimpleDateFormat(format).format((java.util.Date) value); 
return str; 


return value.toString(); 
}

}

然後在Controller中重新註冊json配置物件:

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

最後在使用JSONArray的時候使用過載函式:

JSONArray array=JSONArray.fromObject(List,jsonConfig);

JSONObject jsonObjecg=JSONObject.from(Object,jsonConfig);    注意在轉換的時候就要使用jsonConfig

這就是json處理date型別資料的一個解決方法

相關推薦

json Date型別資料處理

我們經常使用 JSONArray array=JSONArray.fromObject() 將物件集合  List  轉換成jsp所需的   JSONArray   形式 但是當處理到的  List  中包含  Date  型別的資料時,會出現錯誤。 此時,我們應該怎

解決easyui 中顯示Date型別資料為[object Object],json中格式化日期

javabean中 public class Ent{  /**   *   */  private static final long serialVersionUID = 456194500355659344L;      private String id;//主鍵

springMVC返回json資料date型別資料被轉成long型別

在專案的過程中肯定會遇到ajax請求,但是再用的過程中會發現,在資料庫中好好的時間型別資料:2017-05-04 17:52:24 在轉json的時候,得到的就不是時間格式了 而是145245121這

java 直接返回Date型別資料給前端,前端的處理方法

// 前端獲取到資料格式是: // "drvierDate":{"date":9,"day":6,"hours":16,"minutes":30,"month":7,"nanos":0,"seconds":0,"time":1407573000000,"timezoneOf

Oracle中獲取Date型別資料,沒有時分秒

oralce資料庫中,獲取Date型別資料,發現數據的格式為:“yyyy-mm-dd”,而不是“yyyy-mm-dd hh24:mi:ss” 1,使用JDBC從oracle資料庫中取Date型別資料,當使用getDate(“欄位名”)方法取值時,只能獲取到日期,而無法獲

日常開發記錄打卡系列--JSON樹狀資料處理

  寫部落格頻率有點低了呀 由於工作 沒什麼時間研究太多幹貨 很多都是在工作中直接研究實現,就忘記寫部落格記錄了             不過偶爾抽點時間寫寫記錄一下也不錯,雖然問題基本都能解決

springboot前端傳參date型別後臺處理方式

今天真的心累,後臺要接收date型別引數,用postman測了好久也收不到,我參考了以下部落格 https://www.jianshu.com/p/ebe9087b9078 1、針對json格式:在配置檔案中加以下配置 spring.jackson.date-format=yyyy-

JSONObject序列化包含Date型別資料的Java物件

1、引入依賴包: <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>

ORCALE資料庫Date型別資料用String型別接收收出現.0情況也就是顯示毫秒數

如: {    "createdate": "2018-11-28 14:53:24.0", } 但是資料庫中查詢結果並沒有毫秒數    解決方案     public void setCreat

bootspring + mybaits +mysql Date 型別處理

mysql 中有date 型別的屬性,java實體類中對應的屬性是java.sql.Date 類的。 最初的bug是怎麼新增,joinDate 值都是null。 千辛萬苦學會了用String轉Date的兩種方式: 1. @DateTimeFormat(pattern = "yyyy-MM-dd")標籤

mybatis批量插入oracle日期date型別處理

oracle中儲存了date型別的欄位,需要使用Mybatis進行批量的插入 <insert id="saveBatch" parameterType="java.util.List" useG

mysql將timestamp型別轉換成date型別資料

語法格式如下:date_format(timestamp,'%Y-%m-%d %T') DATE_FORMAT() 函式用於以不同的格式顯示日期/時間資料。 DATE_FORMAT(date,format) :date 引數是合法的日期,format 規定日期/時間的輸出

spring boot restful介面傳遞或接收date型別資料

前言 我們在開發spring boot restful介面的時候,通常定義請求物件和返回物件,裡面可能會有各種型別的引數,如果需要傳遞或接收date型別的引數,發現呼叫的時候會報引數型別不匹配的錯誤,下面看如何解決 1、@JsonFormat註解 在請求引數定義date型別的

Springboot框架下Date型別資料上傳問題

問題場景:使用Springboot框架搭建服務,實現如下需求, 服務端使用實體類接收客戶端上傳具有相同結構的json資料資訊,其中實體類的屬性欄位中包含java.util.Date型別的屬性欄位。問題描述:1.由客戶端上傳的json資料中Date欄位格式為“2016-08-1

資料庫date型別資料前端頁面顯示格式不正確問題

oracle date 資料  型別 2017-01-13 10:53:03 頁面前端顯示樣式 Fri Oct 13 10:53:03 CST 2017  解決方法 <fmt:formatDa

Date型別資料的前端js顯示

         以前,顯示Date型別的資料都習慣在伺服器端通過SimpleDateFormat來進行轉化,轉化成一定型別格式的字串,然後再通過EL表示式在JSP中顯示。這一次突然心裡想嘗試一下,在前端通過js進行轉化顯示。         如果沒進行任何轉化的話,前端顯

SpringMVC接收java.util.Date型別資料的2種方法

在Controller中如下定義方法 public PassQueryRequest trade(@ModelAttribute PassQueryRequest tradeRequest, @Req

Jsp格式化顯示Date型別資料

第一步:匯入相關的標籤庫 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 第二步:顯示你需要的資料 <fmt:formatDate value="${each.lastT

錯誤總結之Date型別資料返回格式

Date型別資料在封裝屬性,設定get/set方法時需要加@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")格式化註解,否則以json格式返回給前臺時會以時間戳的形式返回 例: 返回birthday資料: 為時間戳! 將方法

util.Date型別資料插入mysql資料庫時,日期總會少一天,16個小時

插入資料庫前的資料和取出來後的資料 這是簡單的程式碼 檢查了資料庫,生日的型別是date 檢查了資料庫時區的配置,原先是System,我改為了北京時區,都是不行, 再檢查了eclipse的時區配置,也是沒問題 show variables like "%time_