gpt4 book ai didi

java - 使用 Play 框架 2.2 (java) 遍历 JSON 数组

转载 作者:行者123 更新时间:2023-11-30 11:23:49 25 4
gpt4 key购买 nike

您好,感谢您的阅读。

我必须通过 Play 框架调用 restful 服务并将 json 结果解析为对象列表。我的问题是,有数以千计的资源可用于通过游戏创建 Restful 服务,但关于其他方向的资源却不多。

我的下一个问题是我只能在 Controller 中找到服务调用的示例。从模型调用服务是个坏主意吗?我将如何调用此服务(不需要结果)?这是我目前所发现的。

return async(
WS.url("http://localhost:3021/Dashboard.svc/Conversation").get().map(
new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
return ok(response.asJson());
}
}
)
);

我是 Play 的新手,如果我问了愚蠢的问题,请原谅我。我现在对 C# 感觉好多了。

提前致谢!本

最佳答案

找到了。或者 - 找到了如何去做。如果按照我的方式做是个好主意,就不会。

import play.libs.WS;
import play.*;
import play.mvc.*;
import play.mvc.Result.*;
import play.libs.F.Promise;
import play.libs.F.Function;

import java.util.*;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;

public class Order {

...

public static List<Order> getOrders() {
String hostUri = Helper.getWsHostUri();

Promise<WS.Response> promise = WS.url(hostUri + "Orders").get();
Promise<List<Order>> promisedResult = promise.map(
new Function<WS.Response, List<Order>>() {
public List<Order> apply(WS.Response response) {
JsonNode json = response.asJson();
ArrayNode results = (ArrayNode)json;

List<Order> orders = new ArrayList<Order>();
Iterator<JsonNode> it = results.iterator();

while (it.hasNext()) {
JsonNode node = it.next();
Order order = new Order();

order.from = node.get("From").asText();
order.contact = node.get("Contact").asText();
order.amount = node.get("Amount").asDouble();
order.status = node.get("Status").asInt();

orders.add(order);
}

return orders;
}
}
);

return promisedResult.get();
}
}

如果您不像我这样猜测,我仍然很乐意看到如何去做......

谢谢,祝你有美好的一天!

关于java - 使用 Play 框架 2.2 (java) 遍历 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com