JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文主要讲解下java和JSON之间的转换,特别是解决互相转换遇到日期问题的情况。
一、需要相关的jar包:
json-lib-xxx.jar
ezmorph-xxx.jar
commons-httpclient-xxx.jar
commons-lang-xxx.jar
commons-logging-xxx.jar
commons-collections-xxx.jar
上面的包可以从下面的连接下载:
http://commons.apache.org/index.html
http://json-lib.sourceforge.net
http://ezmorph.sourceforge.net
二、java-》JSON
1.List-》JSON
打印结果:list->json:["apple","orange"]
2.Map-》JSON
打印结果:map->json:{"age":30,"name":"Michael","baby":["Lucy","Lily"]}
3.bean->JSON
打印结果:bean->json:{"age":1,"born":{"date":10,"day":3,"hours":14,"minutes":14,"month":2,"seconds":1,"time":1268201641228,"timezoneOffset":-480,"year":110},"name":"NewBaby"}
这时你会发现它把bean对象里的util.Date这个类型的所有属性一一转换出来。在实际运用过程中,大多数情况下我们希望能转化为yyyy-MM-dd这种格式,下面就讲一讲如何实现:
首先要写一个新的类JsonDateValueProcessor如下:
测试代码:
打印结果:bean->json:{"age":1,"born":"2010-03-10","name":"NewBaby"}
这就能得到我们想要的结果了。
三、JSON-》java
1.如何把json的yyyy-MM-dd的转换为Bean中的util.Date类型:
打印结果:
1984-01-12
1990-05-01
2. JSON-》List、 Map
打印结果:
apple
orange
name Michael
age 30
baby [Lucy, Lily]