【问题标题】:Performance difference - Jackson ObjctMapper.writeValue(writer, val) vs ObjectMapper.writeValueAsString(val)性能差异 - Jackson ObjctMapper.writeValue(writer, val) vs ObjectMapper.writeValueAsString(val)
【发布时间】:2019-04-01 15:11:12
【问题描述】:
以下两者之间是否存在显着的性能差异?
String json = mapper.writeValueAsString(searchResult);
response.getWriter().write(json);
对
mapper.writeValue(response.getWriter(), searchResult);
【问题讨论】:
标签:
jackson
objectmapper
jackson-databind
jackson2
fasterxml
【解决方案1】:
writeValueAsStringJavaDoc 说:
可用于将任何 Java 值序列化为字符串的方法。
功能上等同于调用 writeValue(Writer,Object)
StringWriter 和构造 String,但效率更高。
因此,如果您想将JSON 写入String,使用此方法比writeValue 好得多。这两种方法都使用_configAndWriteValue。
在您的情况下,最好将JSON 直接写入response.getWriter(),而不是生成String 对象然后将其写入response.getWriter()。