首页 > 解决方案 > 如何将 mvc.play.Result 转换为 JsonNode 或 String

问题描述

我正在使用播放框架 2.6.17。我在控制器中有一个名为“MasterTag”的类。该类的索引函数返回 JsonNode(return ok(jsonNode)) 值。

public class MasterTag extends Controller{
    public Result index(){
        ObjectMapper mapper = new ObjectMapper();
        JsonNode responseNode = mapper.readTree("{\"mastertag\":\"0.5\"}"); 
         return ok(responseNod);
    }
}

我在控制器中有另一个名为“HomeController”的类,其中调用了 MasterTag.index()。这返回类型为 play.mvc.Result

如何从上述调用获得的 Result 中提取原始 JsonNode?

标签: playframeworkplayframework-2.6

解决方案


我没有答案如何获取 Json,但我终于知道了,如何从 Result 中获取字符串

1.

@Inject
Materializer materializer;

// this is another controller, I would like to get Result from
@Inject
URLExamplesController urlExampleContoller;

2.

public Result index() {

// how to convert Result into String
// caling function in another controller to get Result object
Result result = urlExampleContoller.getQuestyParameterExample2("test 123");
FiniteDuration finiteDuration = Duration.create(5000, TimeUnit.MILLISECONDS);
byte[] body = Await.result(
            FutureConverters.toScala(result.body().consumeData(materializer)), finiteDuration).toArray();

String outputOfAnotherController = new String(body);
}

推荐阅读