1. 程式人生 > >java與json互相轉換(解決日期問題)

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://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-121990-05-01
   2.
JSON-》List、 Map

列印結果:
           
appleorangename  Michaelage  30baby  [Lucy, Lily]