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