Разница в производительности — Jackson ObjctMapper.writeValue (writer, val) против ObjectMapper.writeValueAsString (val)

#jackson #objectmapper #jackson-databind #jackson2 #fasterxml

#джексон #objectmapper #jackson-привязка данных #jackson2 #более быстрый xml

Вопрос:

Есть ли какая-либо существенная разница в производительности между следующими двумя?

 String json = mapper.writeValueAsString(searchResult);
response.getWriter().write(json);
  

против

 mapper.writeValue(response.getWriter(), searchResult);
  

Ответ №1:

writeValueAsString JavaDoc говорит:

Метод, который может использоваться для сериализации любого значения Java в виде строки. Функционально эквивалентно вызову writeValue(Writer, Object) с помощью StringWriter и построению строки, но более эффективно.

Итак, в случае, если вы хотите записать JSON в String , гораздо лучше использовать этот метод, чем writeValue . Оба эти метода используют _configAndWriteValue .

В вашем случае лучше писать JSON непосредственно в response.getWriter() , чем генерировать String объект и после этого записывать его в response.getWriter() .