欢迎来到天天文库
浏览记录
ID:8976538
大小:19.05 KB
页数:3页
时间:2018-04-13
《json和java相互转化对于日期的操作完美解决》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、json-lib的JSONObject.toBean()时碰到的日期属性转换的问题json------->JavaJSON数据是这样的: {"birthday":"1980/01/01","name":"testname"}javaBean是这样的:1.public class Person { 2. private String name; 3. private Date birthday; 4. 5. public void setName(String name) { 6. thi
2、s.name = name; 7. } 8. 9. public String getName() { 10. return name; 11. } 12. 13. public void setBirthday(Date birthday) { 14. this.birthday = birthday; 15. } 16. 17. public Date getBirthday() { 18. return birthday;
3、 19. } 20.}21.操作代码:1.JSONObject jsonPerson = JSONObject.fromObject(personData); 2.String[] dateFormats = new String[] {"yyyy/MM/dd","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"}; 3.JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats)); 4.Person p
4、erson = (Person)JSONObject.toBean(jsonPerson, Person.class);json-lib的JSONObject.fromObject转换JSON字符串碰到的日期属性转换的问题。java------->Json把一个javabean转换成一个JSON的字符串的时候遇到一个问题,因为javabean中含有Date日期的类型,格式化字符串的时候遇到把Date类型也作为一个对象了,而我想要的结果是key=value,取出来则是 updatetime={day=24,year=2012...
5、}样子的。我们可以看出JSONObject net.sf.json.JSONObject.fromObject(Object object, JsonConfig jsonConfig)还接受一个JsonConfig对象,那么我们就应该从这里入手。首先写一个value处理器:publicclassDateJsonValueProcessorimplementsJsonValueProcessor{/***字母日期或时间元素表示示例*GEra标志符TextAD*y年Year1996;96*M年中的月份Mon
6、thJuly;Jul;07*w年中的周数Number27*W月份中的周数Number2*D年中的天数Number189*d月份中的天数Number10*F月份中的星期Number2*E星期中的天数TextTuesday;Tue*aAm/pm标记TextPM*H一天中的小时数(0-23)Number0*k一天中的小时数(1-24)Number24*Kam/pm中的小时数(0-11)Number0*ham/pm中的小时数(1-12)Number1
7、2*m小时中的分钟数Number30*s分钟中的秒数Number55*S毫秒数Number978*z时区GeneraltimezonePacificStandardTime;PST;GMT-08:00*Z时区RFC822timezone-0800*/publicstaticfinalStringDefault_DATE_PATTERN="yyyy-MM-dd";privateDateFormatdateFormat;publicDateJsonValueProcessor(Stri
8、ngdatePattern){try{dateFormat=newSimpleDateFormat(datePattern);}catch(Exceptione){dateFormat=newSimpleDateFormat(Default_DATE_PATTE
此文档下载收益归作者所有