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

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;
 }
 
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值