posts - 241,  comments - 116,  trackbacks - 0
          在SPRING MVC3中,比如做REST時,經常要用JASON去解析,遇到了日期格式化的問題,
          請看例子:

          1) 比如有一個POJO
            package com.loiane.model;

          import java.util.Date;

          import org.codehaus.jackson.annotate.JsonAutoDetect;

          @JsonAutoDetect
          @Entity
          public class Company {

              private int id;
              private double price;
              private String company;
              private Date date;
              private String size;
              private byte visible;
          }

          2)在controller中,返回一個MAP
             public @ResponseBody Map<String,List<Company>> view() throws Exception

          3) 于是SPIRNG MVC返回如下的JSON字符:
             {"total":27,"data":[{"price":71.72,"company":"3m Co","visible":1,"id":1,"size":"large","date":1188615600000},{"price":29.01,"company":"Aloca
          Inc","visible":0,"id":2,"size":"medium","date":1185937200000},{"price":83.81,"company":"Altria Group
          Inc","visible":0,"id":3,"size":"large","date":1186110000000
          。。。。。。。。。。。。。。。。

          4) 可以看到,返回的時間格式不大好看

          5)于是,可以這樣設置:
             @JsonSerialize(using=JsonDateSerializer.class)
          public Date getDate() {
              return date;
          }
          其中   JsonDateSerializer是新編寫的類,繼承了JsonSerializer
            import java.io.IOException;集裝箱運費
          import java.text.SimpleDateFormat;
          import java.util.Date;

          import org.codehaus.jackson.JsonGenerator;
          import org.codehaus.jackson.JsonProcessingException;
          import org.codehaus.jackson.map.JsonSerializer;
          import org.codehaus.jackson.map.SerializerProvider;
          import org.springframework.stereotype.Component;
          @Component
          public class JsonDateSerializer extends JsonSerializer<Date>{

              private static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");

              @Override
              public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
                      throws IOException, JsonProcessingException {

                  String formattedDate = dateFormat.format(date);

                  gen.writeString(formattedDate);
              }

          }

             很簡單,格式化一下,這下輸出JSON就可以了
          {"total":27,"data":[{"price":71.72,"company":"3m Co","visible":1,"id":1,"size":"large","date":"09-01-2007"},{"price":29.01,"company":"Aloca
          Inc","visible":0,"id":2,"size":"medium","date":"08-01-2007"},{"price":83.81,"company":"Altria Group
          Inc","visible":0,"id":3,"size":"large","date":"08-03-2007"},{"price":52.55,"company":"American Express Company","visible":1,"id":4,"size":"extraTP LINK路由器無線信號能傳送多少米
          large","date":"01-04-2008"},{"price":64.13,"company":"American International Group
          Inc.","visible":1,"id":5,"size":"small","date":"03-04-2008"},{"price":31.61,"company":"AT&T Inc.","visible":0,"id":6,"size":"extra
          large","date":"02-01-2008"},{"price":75.43,"company":"Boeing Co.","visible":1,"id":7,"size":"large","date":"01-01-2008"},{"price":67.27,"company":"Caterpillar
          Inc.","visible":1,"id":8,"size":"medium","date":"12-03-2007"},{"price":49.37,"company":"Citigroup,
          Inc.","visible":1,"id":9,"size":"large","date":"11-24-2007"},{"price":40.48,"company":"E.I. du Pont de Nemours and Company","visible":0,"id":10,"size":"extra
          large","date":"05-09-2007"}],"success":true}
          posted on 2011-06-15 09:33 墻頭草 閱讀(7742) 評論(4)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 广丰县| 武安市| 新竹市| 崇礼县| 岳阳市| 上思县| 白沙| 丰宁| 拉萨市| 江永县| 马鞍山市| 牙克石市| 孙吴县| 达孜县| 龙泉市| 奈曼旗| 黄陵县| 建宁县| 汉中市| 武宁县| 仲巴县| 女性| 拜泉县| 蕲春县| 宁陵县| 米林县| 临夏市| 和林格尔县| 柘城县| 蓬安县| 德江县| 洪江市| 南昌县| 凤阳县| 红桥区| 八宿县| 广德县| 紫阳县| 宜黄县| 乐都县| 芦溪县|