JSONObject.toBean怎么转化带有Timestamp类型的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONObject.toBean怎么转化带有Timestamp类型的对象相关的知识,希望对你有一定的参考价值。

参考技术A 类型之间的互相转换 一、js 里面 String 和 Json 对象的互相转换 1、String 转成 Json var str; //String 类型 var json = eval("(" + str + ")"); 2、Json 转换成 String var row; //Json 对象 var str = JSON.stringify(row); 二、java 里面 java 对象和 Json 对象的互相转换 1、JSONObject 转换成 javaObject javaObject 类: Student.class JSONObject jo; Student stu = (Student)JSONObject.toBean(jo, Student.class); 2、javaObject 转换成 JSONObject Student stu; JSONObject jo = JSONObject.fromObject(stu); 3、JSONArray 转换成 javaObject 集合/数组 JSONArray ja; int[] a = JSONArray.toArray(ja); Student[] stus = JSONArray.toArray(ja, Student.class); List<Student> stus = JSONArray.toList(ja,Student.class); 4、javaObject 集合 转换成 JSONArray本回答被提问者采纳 参考技术B

网上搜到的方法似乎得引入jar包 但是我没想继续往下找了 - - 

我这边的做法是修改实体类的类型 数据库类型不变,但是要改的地方挺多的 这不是一个好方法

web开发一些常遇到的问题汇总

1、在使用Json-lib包将json对象转换成javaBean时---比如方法 JSONArray.toList(JsonArray, Clazz)或者JSONObject.toBean(jsonObject, ItemInfo.class);---对于日期需要注册日期处理器,如果未加处理器,会将转化不了的日期转化为当前时间
处理器注册参考代码如下:
String[] dateFormats = new String[]{"yyyy-MM-dd HH:mm:ss.S", "yyyy-MM-dd HH:mm:ss"};  
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
List<ApplicationRequest> openReqApps = JSONArray.toList(JSONArray.fromObject(openReqAppsStr), ApplicationRequest.class);

2、在使用hibernate进行查询从A(起始时期)到B(结束日期)的纪录时,可能会使用HQL:  startDate >= :startDate,然后使用一个时间类型来替换参数
startDate :query.setDate("startDate ",startDate );
如 果数据库中字段类型为timestamp,那么查询2005-11-23到2005-11-23的纪录时不会出现2005-11-23那一天的纪录,哪怕 你的比较符号用的是>=和<=;因为数据库中的2005-11-23的纪录是这样的格式2005-11-23 15:35:48:253,而query.setDate设置一个时间参数进去,他是用这个时间比较的2005-11-23 00:00:00 000,
所以因该用query.setTimeStamp("startDate ",startDate );

Hibernate在保存和更新Date类型的数据到数据库的时候,如果设置不当,会舍弃时分秒,和数据库中Date类型的精确度不符(如Oracle的Date是带时分秒的).
引起的原因主要是mapping文件中的字段类型被设成了type="date",而mapping文件一般都是通过hibernate提供的工具生成的,hibernate提供的工具默认把数据库端date型的字段设成type="date".从而Hibernate在用JDBC做数据库更新的时候会用 statement的setDate(index, sqlDate),插入数据库的日期只有年月日.
其他使用时需要注意的问题:
1,如果是用Hibernate的对象来影射数据库操作(save,load..),需要将mapping文件的type="date"改成type="timestamp".
2,如果用Query(session的createQuery和createSQLQuery),在赋值的时候用query.setTimestamp(0, new Date());
本段来自:http://blog.csdn.net/woshisap/article/details/6543027

以上是关于JSONObject.toBean怎么转化带有Timestamp类型的对象的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么将对象转换成json字符串

json对象和java对象的互相转化

web开发一些常遇到的问题汇总

JSON 相关

Java ZonedDateTime类怎么转化成时间戳

p4714 「数学」约数个数和