`
uule
  • 浏览: 6316833 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Date类型字段转换为json时的问题

    博客分类:
  • JSON
阅读更多

问题:

         在将java.util.Date 类型字段转为json时,获取时取到的日期为[object object] ,无法进行操作。

举例:

Tariff bean = new Tariff();
bean.setName("Robby");
bean.setAge(1);
bean.setBorn(new Date());

 当使用JSONObject jsonObject = JSONObject.fromObject(bean)转换为json时,jsp页面接收到的born日期类型为[object object],无法获取具体日期!

 

解决方法:添加自定义的日期格式转化类

 

package com.techson.himsnanhwa.admin.util;

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();
	}
}

 类名JsonDateValueProcessor自定义,继承的JsonValueProcessor是固定写法。

 

调用:

Tariff bean = new Tariff();
bean.setName("Robby");
bean.setAge(1);
bean.setBorn(new Date());

JsonConfig jsonConfig = new JsonConfig();   //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法
jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());

JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
System.out.println("json:" + jo.toString());

结果:json:{"age":1,"born":"2011-05-31","name":"Robby"}

 也可以通过为日期转换类加上构造函数,使用

jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));

 这种方式获取。

 

参考:http://blog.sina.com.cn/s/blog_5f1fe33f0100jibg.html

分享到:
评论
2 楼 晴天why 2018-03-29  
可以用,感谢!
1 楼 lixueyong87 2013-09-28  
感觉很有用,我现在试了下,感觉可以。

相关推荐

    Springboot DTO字符字段与日期字段的转换问题.docx

    Springboot DTO字符字段与日期字段的转换问题 不会自动转换string与date 主要是这个意思,前端提交的JSON里,日期是一个字符串,而对应后端的实体里,它是一个Date的日期,这两个在默认情况下是不能自动转换的,...

    gson-2.8.6.jar下载

    4. 支持基本数据类型及其封装类型,Collection类型,Date类型及自定义类型。 5. 支持将JSON数组转换为Java数组或List,支持泛型。 6. 支持将Java的Map转换为JSONObject以及相反的转换。 7. 支持将null值和空值转换为...

    解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”

    目录DateTime类型数据格式问题C#对象属性名称转换成JSON自动转成“驼峰命名法”解决办法创建新的 JsonResult 对象使用新的 JsonResult 对象 方法一创建一个BaseController 来重写他的Json()方法使用新的 JsonResult ...

    autocoerce:一个小型库,可自动将JSON字段转换为数字或日期

    强迫 一个小型库,可自动将JSON字段转换为数字或日期入门var autocoerce = require('autocoerce');var myObj = {someText: "Hello",someNumber: "42",someDate: "2014-12-31T23:00:00.000Z"}var newObj = autocoerce...

    Javascript将JSON日期格式化

    在做项目中,将实体转化为JSON后,结果后台返回json时间格式为/Date(1306418993027)/,在前台JS里显示的并不是真正的日期,而且我们不能把所有日期字段都变成string吧,因此写了Javascript的扩展方法,来实现这个...

    easyui纠正json格式日期列显示Demo

    症状:后台返回给页面的数据是Json格式的,其中的日期字段,在后台是“2012-11-10 12:18:00”这样的格式,json序列化后返回到前台页面就被转换成一个像 /Date(1419264000000)/ 的格式,导致easyUI无法解析这个字段。

    Django框架中序列化和反序列化的例子

    将模型转换为json 称之为 序列化 将json转换为模型 称之为 反序列化 1.序列化器的字段 Serializer 序列化器 为了得到模型里的字段,序列化器中的字段应与模型类中的字段名一致 ''' serializers.py ''' class ...

    Interview-Communicator:为 Hack 保加利亚的课程进行面试的一套规则和脚本

    采访-传播者 为 Hack 保加利亚的课程进行面试的一套规则和... 确保您在电子邮件模板中使用的字段(如{Date} )存在于 JSON 文件中。 你需要 Python v. > 3 执行python send_emails.py <name_of_template_located_i

    PHPCMS V9.6.6 修改版

    3. 支持MySQL8+ 4. 修改PHPCMS目录为CMS 5. 验证码修改 6. 支持H5上传,移除Flash上传 7. 修改后台缩略图裁切图片,移除Flash裁切改为H5裁切 8. 后台附件上传修改为H5上传,会员...88. 增加内容编辑时的更新时间字段

Global site tag (gtag.js) - Google Analytics