[英]Play 2 framework: scala iterate through fields of java objects in view
[英]Iterate through JSON array with Play framework 2.2 (java)
嗨,谢谢您的阅读。
我必须通过Play框架调用静态服务,并将json结果解析为对象列表。 我的问题是,有成千上万的资源可用于创建具有娱乐性的静态服务,但其他方向却不多。
我的下一个问题是我只能在控制器中找到服务调用的示例。 从模型调用服务是否是一个坏主意? 我怎么称呼这项服务(不需要结果)? 这是我到目前为止发现的。
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();
}
}
如果您不像我自己那样猜测,我仍然很高兴看到如何做...
感谢,并有一个愉快的一天!
本
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.