您的位置:首页 > 移动开发 > Objective-C

Date类型数据转化json后,在jsp获取日期显示为[object Object]问题

2015-11-16 11:37 821 查看
后台从数据库里取的数据是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”这种形式了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: