JAvaオブジェクトとjson列の相互変換BeanのTimestampをjsonの日付文字列に変換
8704 ワード
import java.util.Map;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.DefaultValueProcessor;
import net.sf.json.util.JSONUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class BeanJsonConverterUtil {
private static final Logger logger = LoggerFactory.getLogger(BeanJsonConverterUtil.class);
/**
* java json
* @param obj
* @return
*/
@SuppressWarnings("rawtypes")
public static String getJsonStrByObject(Object obj){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerDefaultValueProcessor(String.class,
new DefaultValueProcessor() {
public Object getDefaultValue(Class type) {
return null;
}
});
jsonConfig.registerDefaultValueProcessor(Integer.class,
new DefaultValueProcessor() {
public Object getDefaultValue(Class type) {
return null;
}
});
jsonConfig.registerDefaultValueProcessor(Long.class,
new DefaultValueProcessor() {
public Object getDefaultValue(Class type) {
return null;
}
});
jsonConfig.registerDefaultValueProcessor(Character.class,
new DefaultValueProcessor() {
public Object getDefaultValue(Class type) {
return null;
}
});
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));
try{
JSONObject jsonObj = JSONObject.fromObject(obj,jsonConfig);
return jsonObj.toString();
}catch (Exception e){
logger.error(" json !",e);
}
return null;
}
/**
* json java ( )
* @param jsonStr
* @param cls
* @return
*/
@SuppressWarnings("rawtypes")
public static Object getObjectByJsonStr(String jsonStr,Class cls){
String[] formats={"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd"};
try
{
JSONUtils.getMorpherRegistry().registerMorpher(new TimestampMorpher(formats));
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
//
Object obj = JSONObject.toBean(jsonObj,cls);
return obj;
}catch (Exception e){
logger.error("getObjectByJsonStr json !",e);
}
return null;
}
/**
* json java ( )
* @param jsonStr
* @param cls
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static Object getObjectByNestJsonStr(String jsonStr,Class cls){
try
{
ObjectMapper objectMapper = new ObjectMapper();
Object obj = objectMapper.readValue(jsonStr, cls);
return obj;
}catch (Exception e){
logger.error("getObjectByNestJsonStr json !",e);
}
return null;
}
@SuppressWarnings("resource")
public static void main(String[] args) {
new ClassPathXmlApplicationContext("classpath:META-INF/spring/*-context.xml");
Map<String,String> map = JedisPoolUtil.getInstance().hgetAll("0", "task:60258540182:task");
for(String mapKey:map.keySet()){
logger.info(mapKey+":"+ map.get(mapKey));
}
EwsTaskData ewsTaskData = new EwsTaskData();
BeanMapConverterUtil.transMap2Bean2(map,ewsTaskData);
logger.info(ewsTaskData.toString());
String jsonStr = BeanJsonConverterUtil.getJsonStrByObject(ewsTaskData);
logger.info(jsonStr);
ewsTaskData = (EwsTaskData)BeanJsonConverterUtil.getObjectByJsonStr(jsonStr, EwsTaskData.class);
logger.info(ewsTaskData.toString());
// String key = "task:2901_134.224.136.18:taskList";
////String key = "task:" + devID + "_" + getLocalIP() + ":taskList";
//
//// JedisPoolUtil.getInstance().del("0", key);
//
// Map<String,String> scheduledTaskMap = new HashMap<String,String>();
// if(JedisPoolUtil.getInstance().exists("0", key)){
// scheduledTaskMap = JedisPoolUtil.getInstance().hgetAll("0", key);
// }
// logger.info(JedisPoolUtil.getInstance().get("0", key));
//
// key = "task:2901_134.224.136.18:execingtaskList";
//
//// JedisPoolUtil.getInstance().del("0", key);
//
// logger.info(JedisPoolUtil.getInstance().get("0", key));
// String key = "ews:60000072142916:ewsServ";
//
//// JedisPoolUtil.getInstance().lrem("0", key, "{ews_id:60000072142916,ews_serv_code:000A,action_type:A}");
//
// List<String> listJsonStr = JedisPoolUtil.getInstance().lrange("0", key, 0, -1);
//
// for(String jsonStr : listJsonStr){
// logger.info("jsonStr=" + jsonStr);
// EwsServData ewsServData = (EwsServData) getObjectByJsonStr(jsonStr,EwsServData.class);
// logger.info("ewsServData.toString()=" + ewsServData.toString());
// }
// String taskTmlKey = "task:taskToTml:queryTml";
//
// Map<String,String> taskTmlMap = JedisPoolUtil.getInstance().hgetAll("0", taskTmlKey);
// logger.info("getEwsTaskDataByTaskId taskTmlMap size " + taskTmlMap.size());
// for(String mapKey:taskTmlMap.keySet()){
// logger.info("getEwsTaskDataByTaskId taskTmlMap info " + mapKey+" "+ taskTmlMap.get(mapKey));
// }
//
// logger.info(Integer.parseInt(taskTmlMap.get("60133363809l")) + "");
// String jsonStr = "{ews_id:60000072142916,ews_serv_code:000A,action_type:'A'}";
// logger.info(jsonStr);
// EwsServData ewsServData = (EwsServData) getObjectByJsonStr(jsonStr,EwsServData.class);
// logger.info("ewsServData.toString()=" + ewsServData.toString());
//
// jsonStr = getJsonStrByObject(ewsServData);
// logger.info("jsonStr=" + jsonStr);
//
// JedisPoolUtil.getInstance().lpush("0", key, jsonStr);
// String jsonStr = "{action_type:1,ews_para_value:111,old_ews_para_value:111,para_type:1}";
//
// EwsParaData ewsParaData = (EwsParaData) getObjectByJsonStr(jsonStr,EwsParaData.class);
// logger.info("ewsParaData.toString()=" + ewsParaData.toString());
//
// jsonStr = getJsonStrByObject(ewsParaData);
// logger.info("jsonStr=" + jsonStr);
}
}
BeanのTimestampをjsonの日付文字列に変換
public class JsonDateValueProcessor implements JsonValueProcessor {
public static final String Default_DATE_PATTERN ="yyyy-MM-dd";
private DateFormat dateFormat ;
public JsonDateValueProcessor(String datePattern){
try{
dateFormat = new SimpleDateFormat(datePattern);}
catch(Exception e ){
dateFormat = new SimpleDateFormat(Default_DATE_PATTERN);
}
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) {
return process(value);
}
private Object process(Object value){
try {
if (value instanceof java.sql.Timestamp) {
return dateFormat.format((Date)value);
}
return value == null ? "" : value.toString();
} catch (Exception e) {
return "";
}
}
}