通过Play WS API,我获得了一个Response对象。因为它包含JSON我调用
response.asJson()
完美无缺。现在我想在一个漂亮的版本中返回这个JSON,所以我试着调用
Json.prettyPrint(response.asJson())
然而,这不起作用,因为prettyPrint需要JsValue,而不是JsonNode。 所以问题是如何将JsonNode转换为JsObject?
答案 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可用于主版)