Date類型數據轉化json後,在jsp獲取日期顯示爲[object Object]問題

後臺從數據庫裏取的數據是Date日期類型的時候,如果把日期字段以json字符串形式返回前臺界面,前臺就會出現[object Object],而不是顯示“2000-01-01”這種形式.

解決方法:

方法一:後臺添加自定義的日期格式轉化類

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Locale;

import net.sf.json.JsonConfig;

import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor {

    private String format = "yyyy-MM-dd";

    public Object processArrayValue(Object value, JsonConfig config) {

        return process(value);

    }

    public Object processObjectValue(String key, Object value, JsonConfig config) {

        return process(value);

    }

    private Object process(Object value) {

        if (value instanceof Date) {

            SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.UK);

            return sdf.format(value);

        }

        return value == null ? "" : value.toString();

    }

}

然後在list轉化爲json時,進行相應的處理:(這裏是將classList轉化爲JSON串)

JsonConfig config = new JsonConfig();

config.setIgnoreDefaultExcludes(false);

config.registerJsonValueProcessor(java.util.Date.class,new JsonDateValueProcessor());

JSONArray jsonArray = JSONArray.fromObject(classList, config);

String classJson = jsonArray.toString();


方法二:在js中進行格式轉換

//轉化json格式的日期爲yyyy-mm-dd hh:mm

function toDate(v,r,i) {
       var date = new Date();
       date.setTime(v.time);
       var y = date.getFullYear();
       var m = date.getMonth()+1;
       m = m<10?'0'+m:m;
       var d = date.getDate();
       d = d<10?("0"+d):d;
       var h = date.getHours();
       h = h<10?("0"+h):h;
       var M = date.getMinutes();
       M = M<10?("0"+M):M;
       var str = y+"-"+m+"-"+d+" "+h+":"+M;
       return str;

  }


這樣在jsp頁面中獲取json對象的日期時間,就可以得到“2000-01-01”這種形式了!

發佈了37 篇原創文章 · 獲贊 35 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章