JSONObject的内容为:

{"userId":"A000004FFDCE14","userName":"好好干g","userMp":"1820257596","clientName":"风格","regDate":"2016-07-05 00:00:00","startDate":"2016-07-05 00:00:00","endDate":"2017-09-05 00:00:00","times":15458,"master":"master","yesorno":3}]

List<PreparedInfo> listpre = PreApplyConvertEntity.secectlistinfo();

			Gson gson = new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter())
.setDateFormat("yyyy-MM-dd HH:mm:ss").create(); String json = gson.toJson(listpre);
System.out.println(json); JSONArray ja = JSONArray.fromObject(json);
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
String[] dateFormats = new String[] {"yyyy-MM-dd HH:mm:ss" };
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
PreparedInfo person = (PreparedInfo) JSONObject.toBean(jo, PreparedInfo.class);
System.out.println(person);

 

 DateTypeAdapter类:
public class DateTypeAdapter implements JsonSerializer<Date> ,JsonDeserializer<Date> {
private final SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Date deserialize(JsonElement json, Type date, JsonDeserializationContext context) throws JsonParseException {
// TODO Auto-generated method stub
if (!(json instanceof JsonPrimitive)) {
throw new JsonParseException("The date should be a string value");
} try {
return dateFormate.parse(json.getAsString()); } catch (ParseException e) {
throw new JsonParseException(e);
} } @Override
public JsonElement serialize(Date src, Type arg1, JsonSerializationContext arg2) {
String dateFormatAsString = dateFormate.format(new Date(src.getTime()));
return new JsonPrimitive(dateFormatAsString); } }
其中 :List<PreparedInfo> listpre = PreApplyConvertEntity.secectlistinfo();

			Gson gson = new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter()).setDateFormat("yyyy-MM-dd HH:mm:ss").create();

			String json = gson.toJson(listpre);
将List集合对象转换成jsonstring 对象!

  

还有:String[] dateFormats = new String[] {"yyyy-MM-dd HH:mm:ss" };
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
PreparedInfo person = (PreparedInfo) JSONObject.toBean(jo, PreparedInfo.class);
解决不要这段代码时转换并不抛出例外,而是在日志中打出以下警告信息: Can't transform property 'birthday' from java.lang.String into java.util.Date. Will register a default Morpher 的解决办法

  

最后 有时我们想将日期保存到数据库时用 java.util.Date 就会出错,一定要用java.sql.Date 这是在使用 JDBC 的情况下,在这种情况下就要将 java.util.Date 转换为 java.sql.Date,下面就是示例代码 java.util.Date utilDate = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

JSONObject处理java.util.Date的更多相关文章

  1. 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型

    问题描述: java里面时间类型转换成json数据就成这样了: "createTime":{"date":30,"day":3," ...

  2. Json-lib - java.util.Date 转换问题

    使用 JSON-lib 将 java.util.Date 对象直接转换成 JSON 字符串时,得到的通常不是想要格式: System.out.println(JSONSerializer.toJSON ...

  3. java.sql.Date to java.util.Date

    发这篇博文的题目可能无法直接表示内容,但是确实是java.sql.Date和java.util.Date. 今天在使用'net.sf.json.JSONObject'封装json数据的时候,碰到很奇怪 ...

  4. java.sql.Date和java.util.Date的不同和相互转换方式

    一:前言 这是我在新的公司写的第一份博客吧,来了又一个星期了吧,但是在来的那几天我真的很迷茫的感觉这里是很不适合我的样子,而且我又是来实习的,我很不愿意啊,自己做的又是java web,最原始的ser ...

  5. java.sql.Date赋值给了java.util.Date.转化成JSONArray时出错net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

    net.sf.json.JSONException: java.lang.reflect.InvocationTargetExceptionat net.sf.json.JSONObject.defa ...

  6. java基础--java.util.Date类型小结

    首先先来了解一下Date数据类型: . Date类型通常要和另一个 java.text.SimpleDateFormat类联合使用. 把long-->Date: public Date(long ...

  7. 前台传参数时间类型不匹配:type 'java.lang.String' to required type 'java.util.Date' for property 'createDate'

    springMVC action接收参数: org.springframework.validation.BindException: org.springframework.validation.B ...

  8. java.util.Date与java.sql.Date

    我数据库里用到了日期类型.用java编程的时候同时import了java.util.*和java.sql.*,发现直接申明Date类型 Date dt; 会报错,查了一下才发现有java.util.D ...

  9. Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'xxx': no matching editors or conversion strategy found

    今天在完成项目的时候遇到了下面的异常信息: 04-Aug-2014 15:49:27.894 SEVERE [http-apr-8080-exec-5] org.apache.catalina.cor ...

随机推荐

  1. hdu-4471-Homework-矩阵快速幂+优化加速

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4471 题目意思: 求f(n). 当n为特殊点nk时 解题思路: 当x不为特殊点时,直接用基本的矩阵快 ...

  2. eclipse调试java调用matlab程序的7.17dll找不到的问题

    经过多次查找,这个问题本来很简单,在环境变量中CLASSPATH配置C:\MATLAB\R2012a\toolbox\javabuilder\jar\win64\javabuilder.jar 特别注 ...

  3. Android RecyclerView体验(一)- 简介

    在网上关于RecyclerView的基本使用方式已经有了比较详细介绍,而且其设计结构也类似于ListView,所以本文将不重点介绍如何使用,在文末的引用中都可以相关内容.这里主要是介绍Recycler ...

  4. 2016年美国数学建模比赛(MCM/ICM) E题环境科学 Are we heading towards a thirsty planet? 人工精准翻译。

    第二次参加建模,觉得建模太有趣了,用几天的时间,迅速学习新知识,并解决实际问题. ——————————————————————————————————————————————————————————— ...

  5. BAE部署Django项目流程整理

    1.首先在BAE上创建一个应用名称并付费2.把应用文件夹git到本地,此时文件夹会多出三个文件app.conf,favicon.ico,index.py3.在应用文件夹内创建本地项目:myblog,并 ...

  6. 程序启动的目录不一样.ajax请求的地址跳转会出现的问题

    程序启动的目录不一样.ajax请求的地址跳转会出现的问题启动 frontend/web/启动 frontend/ $.ajax({ url:"<?php echo Yii::$app- ...

  7. C# winform调用东软动态库的问题

    在C# winform程序中调用东软的动态库ESActiveX.ocx 如果是引用ESActiveX.ocx,然后在代码中设置示例,调用就会报"灾难性错误" 如果在工具箱中点击右键 ...

  8. Lintcode解题报告

    1. Num.196 寻找缺失的数 给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数. 注意事项 可以改变序列中数的位置. 您在真实的面试中是否遇到过这个题 ...

  9. EXCEL 数字统一转换成文本

    将excel中的数字统一转换成文本形式.即添加‘. 1.点击数据-分列. 2.分隔符号-下一步. 3.选择文本识别符号,如“‘”分号. 4. 选中文本-完成.

  10. edittext设置为密文显示

    et_msg.setInputType(InputType.TYPE_CLASS_TEXT |InputType.TYPE_TEXT_VARIATION_PASSWORD);