Play中的prettyPrint jsonNode

时间:2014-03-06 10:53:49

标签: json playframework-2.0 jackson

通过Play WS API,我获得了一个Response对象。因为它包含JSON我调用

response.asJson()

完美无缺。现在我想在一个漂亮的版本中返回这个JSON,所以我试着调用

Json.prettyPrint(response.asJson())

然而,这不起作用,因为prettyPrint需要JsValue,而不是JsonNode。 所以问题是如何将JsonNode转换为JsObject?

2 个答案:

答案 0 :(得分:16)

我猜你正在使用Play with Java。您可以执行以下操作,而不是转换为JsValue:

JsonNode node = response.asJson();
ObjectMapper mapper = new ObjectMapper(); 
String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(node);

答案 1 :(得分:3)

Pull request #2924(目前仅在2014-05-26版本中提供)改进了Play Framework,允许在JsValue和JsonNode之间进行转换等。

据我所知,Java Json包中仍然没有一个prettyPrint,但距离我们还有一步之遥。

#2945中添加了漂亮的印刷品和一些其他功能(以使Java与Scala保持一致)(目前仅在2014-05-28可用于主版)