java與json互相轉換(解決日期問題)
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://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-121990-05-01
2. JSON-》List、 Map
列印結果:
appleorangename Michaelage 30baby [Lucy, Lily]