Формат строки в ответе Json - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь отправить трассировку стека в ответ API, если Spring Boot работает в профилях, отличных от рабочих, чтобы было легко отлаживать проблемы.

Я уже пробовал \ r и \ n, но онипечатается как есть.То, что я хочу, это новая строка должна отображаться вместо \ n.

Я пробовал и Apache Commons Library и мой пользовательский конвертер, чтобы получить трассировку стека в формате String.

//Using Apache Commons library 
private String getStackTrace(Throwable ex) {
        return ExceptionUtils.getStackTrace(ex);
}

//Custom
    private String getCustomStackTrace(Throwable throwable) {
        //add the class name and any message passed to constructor
        StringBuilder result = new StringBuilder();
        result.append(throwable.toString());
        String NL = System.getProperty("line.separator");

        //add each element of the stack trace
        for (StackTraceElement element : throwable.getStackTrace()){
          result.append(element);
          result.append(NL);
        }
        return result.toString();
      }

вывод JsonЯ получаю в Почтальоне:

{
    "apiStackTrace": "java.lang.NullPointerException at xxx.xxx.Controller.getxxxxx(ABC.java:56)\n\t at xxx.xxx.xxxController$$FastClassBySpringCGLIB$$fd2ed167.invoke(<generated>)\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)"
    "status": "failure",

}

Ожидаемый Json

{
"apiStackTrace": "
java.lang.NullPointerException at xxx.xxx.Controller.getxxxxx(ABC.java:56) 
 xxx.xxx.xxxController$$FastClassBySpringCGLIB$$fd2ed167.invoke(<generated> 
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)"

"status": "failure",

}

Если вы видите, что я получаю в apiStackTrace, печатается \ n \ t символов в ответ, что делает его нечитаемым.

Мне нужно, чтобы в apiStackTrace были явные новые строки, чтобы сделать его более читабельным.

Так что вопрос в том, как этого добиться.

PS: Это изменение для DEVи только профиль QA, поэтому в ответе почтальона мы хотим видеть трассировку стека, чтобы избежать повторного открытия файла журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...