一、 准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:https://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:https://wiki.fasterxml.com/JacksonInFiveMinutes
ObjectMapper是一个高效转化json格式数据的类,如果创建的是spring boot项目,会自动导入com.fasterxml.jackson 依赖包,我使用的是这个类ObjectMapper。
public class BaseAction extends ActionSupport implements BaseActionInf, ServletRequestAware, ServletResponseAware, CookiesAware, ServletContextAware, InitializingBean {
/**
* 项目初始化,启动方法
*/
@Override
public void afterPropertiesSet() throws Exception {
objectMapper = new ObjectMapper();
// param与前端传值不一致时候,不会报错
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* 从键值对获取对象,h5用,加入token
*
* @param clazz
* @return
* @throws Exception
*/
@Override
protected
return this.readParamByParamMapFinal(clazz, true);
}
/**
* 从键值对获取对象,h5用,加入token
*
* @param clazz
* @return
* @throws Exception
*/
@Override
protected
HttpServletRequest request = getHttpServletRequest();
Map
Map
// if (!StringUtils.isBlank(getCookie("token"))) {
// values.put("token", getCookie("token"));
// }
for (Entry
if (e.getValue() != null) {
if (e.getValue().length == 1) {
values.put(e.getKey(), StringUtils.trim(e.getValue()[0]));
} else if (e.getValue().length > 1) {
List
values.put(e.getKey(), list);
}
}
}
// map为空
if (values.size() <= 0) {
logger.info("read value is empty.");
if (ifCreate) {
T t = clazz.newInstance();
return t;
}
return null;
}
String s = null;
try {
s = objectMapper.writeValueAsString(values);
logger.info("read value is :" + s);
} catch (Exception e) {
logger.error("", e);
}
s = s.replace("\\\"", "\"");
T t = readValue(reomveStr(s), clazz);
if (t == null) {
t = clazz.newInstance();
}
return t;
}
}