我正在使用ObjectMapper将系统中的帖子序列化为json.这些帖子包含来自世界各地的条目,并包含utf-8字符.问题在于,ObjectMapper似乎无法正确处理这些字符.例如,字符串“Muséed’Orsay”被序列化为“ Mus?©e d’Orsay”.
这是执行序列化的代码:
public static String toJson(List<Post> posts) {
ObjectMapper objectMapper = new ObjectMapper()
.configure(Feature.USE_ANNOTATIONS,true);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
objectMapper.writeValue(out,posts);
} catch (JsonGenerationException e) {
// Todo Auto-generated catch block
e.printstacktrace();
} catch (JsonMappingException e) {
// Todo Auto-generated catch block
e.printstacktrace();
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
return new String(out.toByteArray());
}
有趣的是,完全相同的List< Post>当我使用以下配置通过使用@ResponseBody的请求处理程序返回帖子时,帖子就可以序列化了:
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ObjectMapper m = new ObjectMapper()
.enable(Feature.USE_ANNOTATIONS)
.disable(Feature.FAIL_ON_UNKNowN_PROPERTIES);
MappingJacksonHttpMessageConverter c = new MappingJacksonHttpMessageConverter();
c.setobjectMapper(m);
converters.add(c);
super.configureMessageConverters(converters);
}
任何帮助,不胜感激!
最佳答案
除了转换外,如何简化流程以:
return objectMapper.writeValueAsstring(posts);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。