JSONObject 변환 JSON - Date를 지정된 형식으로 변환
2314 단어 JSONObject
{"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'형식이 된다는 것이다.