2

Spring MVC アプリケーションで応答本文の JSON シリアル化に Jackson 1.9.6 (codehaus) を使用していますが、きれいな印刷を構成する方法を見つけるのに苦労しています。私が見つけることができたすべてのコード例 ( thisthisなど) には、ObjectMapperorのインスタンス化を使用することが含まれObjectWriterていますが、現在、これらのインスタンス化を他の目的で使用していません。このコードをどこに置くべきかさえわかりません。Jackson の構成はすべて、JSON にシリアル化される POJO に注釈を付けることで処理されます。

注釈できれいな印刷を指定する方法はありますか? 彼らはそれを@JsonSerializeに入れたと思いますが、そうではありません。

シリアル化するクラスは次のようになります。

@JsonAutoDetect
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class JSONObject implements Serializable{...}

私のSpringコントローラーメソッドは次のようになります:

@RequestMapping(method = RequestMethod.GET)
public @ResponseBody List<Object> getMessagesAndUpdates(HttpServletRequest request, HttpServletResponse response) {
    JSONObject jsonResponse = new JSONObject();
    .
    .
    .
    //this will generate a non-pretty-printed json response.  I want it to be pretty-printed.
    return jsonResponse;
}
4

2 に答える 2

5

似たようなものを検索して検索しましたが、見つけた最も近いものは、この Bean をアプリケーションコンテキスト構成に追加することでした (注: Spring Boot を使用しているため、Spring Boot 以外のアプリでそのまま機能することは 100% 確信していません) ):

@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder()
{
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
    builder.indentOutput(true);
    return builder;
}

私の意見では、これは利用可能な最もクリーンなソリューションであり、かなりうまく機能します。

于 2015-09-07T05:18:43.587 に答える