JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
来源:互联网 发布:php msgpack unpack 编辑:程序博客网 时间:2024/05/21 04:26
接着上篇文章,先看下面的代码:
Person.java :
public class Person {private Date hire;public Date getHire() {return hire;}public void setHire(Date hire) {this.hire = hire;}public Person() {super();}public Person(Date hire) {super();this.hire = hire;}}Test.java :
public class Test {public static void main(String[] args) {test();}public static void test(){Person p=new Person(new Date());JSONObject json=JSONObject.fromObject(p);String json_str=json.toString();System.out.println(json_str);}}
运行程序得到:
{"hire":{"date":20,"day":4,"hours":17,"minutes":21,"month":5,"seconds":16,"time":1371720076781,"timezoneOffset":-480,"year":113}}
这显然不是我们希望得到的格式。那么怎么解决呢?其实导入的相关jar包里已经给我们预留了我们所需要的接口JsonValueProcessor。
我们可以写一个转换器,并且选择实现框架给我们预留的接口JsonValueProcessor,实现接口中的方法,在这些方法里实现所需要的转换逻辑。
DateProcessor.java :
public class DateProcessor implements JsonValueProcessor {private String pattern="yyyy-MM-dd";public void setPattern(String pattern) {this.pattern = pattern;}@Overridepublic Object processArrayValue(Object arg0, JsonConfig arg1) {Date date=(Date)arg0;SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.format(date);}@Overridepublic Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {Date date=(Date)arg1;SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.format(date);}}然后改写Test.java :
public class Test {public static void main(String[] args) {test();}public static void test(){Person p=new Person(new Date());DateProcessor processor=new DateProcessor();JsonConfig config=new JsonConfig();config.registerJsonValueProcessor(Date.class,processor);JSONObject json=JSONObject.fromObject(p,config);String json_str=json.toString();System.out.println(json_str);}}此时再运行程序得到:
{"hire":"2013-06-20"}这样就可以将Date类型转换为我们希望要的格式。
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- JSON(2):如何将一个java对象转换为一个符合json语法的字符串
- JSON(1):如何将符合json语法的字符串转换为一个JS对象
- Date类型字段转换为json时的问题
- 关于如何将含有Date类型属性的对象转换成符合实际应用的Json字符串
- 关于date类型的json字符串相互转换
- 将Date日期类型的字段转换成json字符串
- 把String类型转换为Date类型遇到的问题。
- java json字符串解析--遇到的问题
- golang 转换json字符串为json对象的小问题
- SpringMVC @RequestBody Date类型的Json转换
- java date类型转换为json
- String类型的json体转换为json(json嵌套字符串json,嵌套字符串json数组等)转换并解析为需要的json格式
- 关于java将String类型的时间字符串转换为Date类型的问题
- json-lib 中 Date 类型的 转化为 json
- 开发中遇到的JSON字符串转换的小问题
- JSON String类型转换时遇到的问题--ClassCastException
- json转换时间类型的字符串为object-小心
- Linux文件系统域名解析实现
- [C语言]支持命名参数的函数调用
- Android JNI 编译注意事项
- 2013上半年总结
- ToolTip='<%#"需转客供数量:"+Eval("TransferHampooQty")%>'
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- 数据库
- C语言指针与数组之间的恩恩怨怨
- 宏定义#error等
- dataGridView设置数据字体格式
- Struts 的工作流程 .
- 基本算法实现小结(一)—— 单链表
- 卡尔曼滤波算法原理
- malloc_stats---检查内存泄露的神器