jackson转字符串异常
来源:6-6 Jsonutil 封装及调试-1
慕运维0703663
2018-01-06
/**
* 字符串转对象
* @param str
* @param clazz
* @param <T>
* @return
*/
public static <T> T stringTOobj(String str, Class<T> clazz) {
if (StringUtils.isEmpty(str) || clazz == null) {
return null;
}
try {
return clazz.equals(String.class) ? (T) str : objectMapper.readValue(str, clazz);
} catch (Exception e) {
log.warn("Parse string to object error", e);
return null;
}
}
从redis取出来的字符串转对象报错,但是直接传字符串进去是正常的
正常 JsonUtil.stringTOobj("{\"username\":\"admin\",\"password\":\"123456\"}", User.class);
异常 JsonUtil.stringTOobj(stringRedisTemplate.opsForValue().get(session.getId()),User.class) ;
org.codehaus.jackson.JsonParseException: Illegal character ((CTRL-CHAR, code 0)): only regular white space (\r, \n, \t) is allowed between tokens
at [Source: java.io.StringReader@337f765f; line: 1, column: 2]
3回答
-
Geely
2018-01-09
是的,必须用到项目里,所以你给我的线索要尽量多,没补充之前真不知道上下文是什么样的。笑哭的表情。。
mapper.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true) ;
在objectmapper增加这个配置。
00 -
慕运维0703663
提问者
2018-01-07
是这样的我们学的最终要用到实际的项目中去,所以我就用公司的项目来做练习了,redis用的是spring-boot-starter-data-redis这个包
012018-02-08 -
Geely
2018-01-07
你好,同学,stringRedisTemplate.opsForValue().get(session.getId()),User.class 这个方法是什么方法?咱们课程里是没有这个方法的,它stringRedisTemplate.opsForValue().get(session.getId() 的返回值是什么呢? 把具体的返回值发上来一起看看呢
00
相似问题