JSONObject 변환 JSON - Date를 지정된 형식으로 변환

2314 단어 JSONObject
프로젝트에서 자주 JSONObject 플러그인으로 JavaBean이나List을 JSON 형식의 문자열로 변환하는데, JavaBean의 속성은 때로java가 있습니다.util.Date 유형의 시간 객체인 경우 JSONObject는 기본적으로 Date 속성을 다음과 같은 형식으로 변환합니다.
 
{"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22}

이런 격식은 이해하기 어려울 것이다. 데이트를 우리가 아는'yyy-MM-dd'격식으로 바꾸기 위해서는 다음과 같은 조작이 필요하다.
 
 
우선 시간 변환기를 만듭니다
 
public class JsonDateValueProcessor implements JsonValueProcessor {
	private String format ="yyyy-MM-dd";
	
	public JsonDateValueProcessor() {
		super();
	}
	
	public JsonDateValueProcessor(String format) {
		super();
		this.format = format;
	}

	@Override
	public Object processArrayValue(Object paramObject,
			JsonConfig paramJsonConfig) {
		return process(paramObject);
	}

	@Override
	public Object processObjectValue(String paramString, Object paramObject,
			JsonConfig paramJsonConfig) {
		return process(paramObject);
	}
	
	
	private Object process(Object value){
        if(value instanceof Date){  
            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);  
            return sdf.format(value);
        }  
        return value == null ? "" : value.toString();  
    }

}

 
 
그런 다음 JSONObject를 호출하기 전에 JsonConfig를 만들고 마지막으로 정의된 date 변환기를 등록합니다.
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());

 
마지막으로 JsonConfig을 JSONObject 대상에 넣습니다. 여기에 서로 다른 데이터 유형에 대해 여러 가지 방식으로 JsonConfig를 넣습니다.
JSONObject json = new JSONObject();
//Map JSON
json.putAll(Map, jsonConfig);

혹은
JSONObject json = new JSONObject();
//JavaBean JSON
json.fromObject(object, jsonConfig)

 
마지막으로 우리가 본 결과는 자바빈에 데이트 대상이 있으면 JSON 문자열로 변환될 때'yyy-MM-dd'형식이 된다는 것이다.

좋은 웹페이지 즐겨찾기