java Data object 用 JSONObject.fromObject 或 JSONArray.fromObject做轉換的時候,
會轉成一個[ object object]的模式,如下:

"itemDateFrom":{"date":18,"hours":0,"seconds":0,"month":8,"nanos":0,"timezoneOffset":-480,"year":119,"minutes":0,"time":1568736000000,"day":3}

因為和預期 ( YYYY/MM/DD ) 不同,可以加入自定義轉換方式

  1. 先自定一個轉換定義
public class DateValue implements JsonValueProcessor{

	private String format ="yyyy/MM/dd";  
	
	public DateValue(){
		super();
	}
	
	public DateValue(String datePattern){
		super();  
        this.format = datePattern;
	}
	
	@Override
	public Object processArrayValue(Object value, JsonConfig config) {
		return process(value);
	}

	@Override
    public Object processObjectValue(String key, Object value, JsonConfig config) {   
        return process(value);   
    }
	
    private Object process(Object value){
        if(value instanceof Date){
        	SimpleDateFormat sdf = new SimpleDateFormat(format);    
            return sdf.format(value); 
        }   
        return value == null ? "" : value.toString();   
    }
}
  1. 進行轉換
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class , new DateValue());
//jsonConfig.registerJsonValueProcessor(Date.class , new DateValue("yyyy-MM-dd"));
JSONArray.fromObject(rtnProductUsableVoList,jsonConfig);

 

    咪卡恰比 發表在 痞客邦 留言(0) 人氣()