json對象的用法包括日期格式化

來源:互聯網
上載者:User

public static void main(String []arg) throws ParseException{
   boolean[] boolArray = new boolean[]{true,false,true};  
   JSONArray jsonArray = JSONArray.fromObject( boolArray );   
   System.out.println( jsonArray );   
   // prints [true,false,true] 
   List list = new ArrayList();   
   list.add( "first" );   
   list.add( "second" );   
   JSONArray jsonArray1 = JSONArray.fromObject( list );   
   System.out.println( jsonArray1 );   
   // prints ["first","second"] 
   JSONArray jsonArray2 = JSONArray.fromObject( "['json','is','easy']" );   
   System.out.println( jsonArray2 );   
   // prints ["json","is","easy"]  
   Date date1 = new Date();
   SimpleDateFormat sf = new SimpleDateFormat ("yyyy/MM/dd");
   String s = sf.format(date1);
   JSONArray jsonray1 = JSONArray.fromObject("['"+s+"']");
   System.out.println( jsonray1.toString() );
   System.out.println( jsonray1);

//日期處理

   EventDetails eventDetailItems = new EventDetails();
    eventDetailItems.setDayId(1);
    eventDetailItems.setDisplayKind(0);
    eventDetailItems.setEventName("sb");
    Date date = new Date();
    eventDetailItems.setOccurrenceDate(date);
    eventDetailItems.setRailroadXCode("tbc03");
    eventDetailItems.setRailroadXName("日本人該死");
    eventDetailItems.setReceivedDate(new Date());
    eventDetailItems.setRowNo(0);
      JsonValueProcessor jsonProcessor = new DateJsonValueProcessor();
         JsonConfig jsonConfig = new JsonConfig();
         //註冊值處理器
         jsonConfig.registerJsonValueProcessor(Date.class, jsonProcessor);
         String json22 = JSONSerializer.toJSON(eventDetailItems , jsonConfig).toString();
         System.out.println(json22); 

   Stbz0401UpdateOutputData updates = new Stbz0401UpdateOutputData();
  
   List sssEventDetails= new ArrayList<EventDetails>();
   for(int i = 0; i < 3 ;i++) {
    EventDetails eventDetailItems = new EventDetails();
    eventDetailItems.setDayId(1);
    eventDetailItems.setDisplayKind(0);
    eventDetailItems.setEventName("sb");
    Date date = new Date();
    String s1 = sf.format(date);
    date = sf.parse(s1);
    eventDetailItems.setOccurrenceDate(date);
    eventDetailItems.setRailroadXCode("tbc03");
    eventDetailItems.setRailroadXName("日本人該死");
    eventDetailItems.setReceivedDate(new Date());
    eventDetailItems.setRowNo(0);
    sssEventDetails.add(eventDetailItems);
    updates.setEventDetailItems(sssEventDetails);
   }
   //JSONArray json = JSONArray.fromObject( updates );  
   //System.out.println( json.toString() );
   JsonValueProcessor jsonProcessor1 = new DateJsonValueProcessor();
         JsonConfig jsonConfig1 = new JsonConfig();
         //註冊值處理器
         jsonConfig1.registerJsonValueProcessor(Date.class, jsonProcessor1);
         String json = JSONSerializer.toJSON(updates , jsonConfig1).toString();
    System.out.println( json.toString() ); 
    
 }

 
}

日期處理類
package com.nec.jp.railroadX.TBZ.TBZ04;

import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

class DateJsonValueProcessor implements JsonValueProcessor {
 private String format = "yyyy-MM-dd";

 public DateJsonValueProcessor() {
 }

 public DateJsonValueProcessor(String format) {
 this.format = format;
 }

 public Object processArrayValue(Object value, JsonConfig jsonConfig) {
 String[] obj = {};
 if (value instanceof Date[]) {
 SimpleDateFormat sf = new SimpleDateFormat(format);
 Date[] dates = (Date[]) value;
 obj = new String[dates.length];
 for (int i = 0; i < dates.length; i++) {
 obj[i] = sf.format(dates[i]);
 }
 }
 return obj;
 }

 public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
 if (value instanceof Date) {
 String str = new SimpleDateFormat(format).format((Date) value);
 return str;
 }
 return value.toString();
 }

 public String getFormat() {
 return format;
 }

 public void setFormat(String format) {
 this.format = format;
 }

 }

 

 bean類

package com.nec.jp.railroadX.TBZ.TBZ04;

import java.util.List;

import com.nec.jp.railroadX.TBZ.EventDetails;

/**
 * Stbz0401UpdateActionの出力データ(JSONで、JavaScriptに引き渡される)、Stbz0401LogicBean.updateが作成する。
 * @author wangjing
 */
public class Stbz0401UpdateOutputData {

 // 追加イベントリスト
 private List<EventDetails> eventDetailItems;

 /**
  * @return the eventDetailItems
  */
 public List<EventDetails> getEventDetailItems() {
  return eventDetailItems;
 }

 /**
  * @param eventDetailItems the eventDetailItems to set
  */
 public void setEventDetailItems(List<EventDetails> eventDetailItems) {
  this.eventDetailItems = eventDetailItems;
 }
 
}

 

 //bean類

package com.nec.jp.railroadX.TBZ;

import java.util.Date;

import org.apache.struts2.json.annotations.JSON;

/**
 * イベントを保持するクラス
 * @author wangjing
 *
 */
public class EventDetails {

 // 番號
 private int rowNo;
 // 日付ID
 private int dayId;
 // 発生日時
 private Date occurrenceDate;
 // 受信日時
 private Date receivedDate;
 // 踏切コード
 private String railroadXCode;
 // 踏切名稱
 private String railroadXName;
 // イベント名稱
 private String eventName;
 // イベント表示區分
 private int displayKind;
 /**
  * @return the rowNo
  */
 public int getRowNo() {
  return rowNo;
 }
 /**
  * @param rowNo the rowNo to set
  */
 public void setRowNo(int rowNo) {
  this.rowNo = rowNo;
 }
 /**
  * @return the dayId
  */
 public int getDayId() {
  return dayId;
 }
 /**
  * @param dayId the dayId to set
  */
 public void setDayId(int dayId) {
  this.dayId = dayId;
 }
 /**
  * @return the occurrenceDate
  */
  @JSON(format="yyyy-MM-dd")
 public Date getOccurrenceDate() {
  return occurrenceDate;
 }
 /**
  * @param occurrenceDate the occurrenceDate to set
  */
 public void setOccurrenceDate(Date occurrenceDate) {
  this.occurrenceDate = occurrenceDate;
 }
 /**
  * @return the receivedDate
  */
  @JSON(format="yyyy-MM-dd")
 public Date getReceivedDate() {
  return receivedDate;
 }
 /**
  * @param receivedDate the receivedDate to set
  */
 public void setReceivedDate(Date receivedDate) {
  this.receivedDate = receivedDate;
 }
 /**
  * @return the railroadXCode
  */
 public String getRailroadXCode() {
  return railroadXCode;
 }
 /**
  * @param railroadXCode the railroadXCode to set
  */
 public void setRailroadXCode(String railroadXCode) {
  this.railroadXCode = railroadXCode;
 }
 /**
  * @return the railroadXName
  */
 public String getRailroadXName() {
  return railroadXName;
 }
 /**
  * @param railroadXName the railroadXName to set
  */
 public void setRailroadXName(String railroadXName) {
  this.railroadXName = railroadXName;
 }
 /**
  * @return the eventName
  */
 public String getEventName() {
  return eventName;
 }
 /**
  * @param eventName the eventName to set
  */
 public void setEventName(String eventName) {
  this.eventName = eventName;
 }
 /**
  * @return the displayKind
  */
 public int getDisplayKind() {
  return displayKind;
 }
 /**
  * @param displayKind the displayKind to set
  */
 public void setDisplayKind(int displayKind) {
  this.displayKind = displayKind;
 }
 
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.