特殊なタイプのjsonに対する処理
以前はjsonの特殊な処理が少なく、何を組み立てる必要があったのか、今はbeanからターゲットフォーマットに変換する必要があります.
例えばTimestampはnet.を用いる.sf.json.JSONObjectでは、Timestampのgetter setterにシーケンス化されていますが、実は私たちは彼を簡単な時間フィールドにするだけです.
時間タイプへの変換の作成
プロセスを登録してbeanをシーケンス化する
例えばTimestampはnet.を用いる.sf.json.JSONObjectでは、Timestampのgetter setterにシーケンス化されていますが、実は私たちは彼を簡単な時間フィールドにするだけです.
JSONObject net.sf.json.JSONObject.fromObject(Object object, JsonConfig jsonConfig)
この方法はずっとそこに置いていて役に立たないので、今回は役に立つはずです.時間タイプへの変換の作成
public class JSONTimeStampProcessor implements JsonValueProcessor {
/* (non-Javadoc)
* @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig)
*/
@Override
public Object processArrayValue(Object obj, JsonConfig jsonconfig) {
// TODO Auto-generated method stub
return obj;
}
/* (non-Javadoc)
* @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig)
*/
@Override
public Object processObjectValue(String s, Object obj, JsonConfig jsonconfig) {
// TODO Auto-generated method stub
if (obj instanceof Timestamp) {
try {
Timestamp timeStamp = (Timestamp) obj;
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String rtnType = sdf.format(timeStamp);
return rtnType;
} catch (Exception e) {
}
}
return obj;
}
}
プロセスを登録してbeanをシーケンス化する
JsonConfig jsonConfig=new JsonConfig();
JSONTimeStampProcessor timeStamp=new JSONTimeStampProcessor();
jsonConfig.registerJsonValueProcessor(Timestamp.class, timeStamp);
return JSONObject.fromObject(bean, jsonConfig).toString();