Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Play framework 2.2(java)迭代JSON数组_Java_Web Services_Playframework 2.2 - Fatal编程技术网

使用Play framework 2.2(java)迭代JSON数组

使用Play framework 2.2(java)迭代JSON数组,java,web-services,playframework-2.2,Java,Web Services,Playframework 2.2,你好,谢谢你的阅读 我必须通过Play框架调用restful服务,并将json结果解析为对象列表。我的问题是,有成千上万的资源用于创建一个具有play功能的restful服务,但在另一个方向上没有太多资源 我的下一个问题是,我只能在控制器中找到服务调用的示例。从模型调用服务是个坏主意吗?我将如何调用此服务(不需要结果)?这就是我到目前为止所发现的 return async( WS.url("http://localhost:3021/Dashboard.svc/Conversation"

你好,谢谢你的阅读

我必须通过Play框架调用restful服务,并将json结果解析为对象列表。我的问题是,有成千上万的资源用于创建一个具有play功能的restful服务,但在另一个方向上没有太多资源

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

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());
            }
        }
    )
);
返回异步(
WS.url(“http://localhost:3021/Dashboard.svc/Conversation“”.get().map(
新函数(){
应用公共结果(WS.Response响应){
返回ok(response.asJson());
}
}
)
);
我是新手,所以如果我问一些愚蠢的问题,请原谅我。有了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();
    }
}
import play.libs.WS;
输入播放*;
导入play.mvc.*;
导入play.mvc.Result.*;
导入play.libs.F.Promise;
导入play.libs.F.函数;
导入java.util.*;
导入com.fasterxml.jackson.databind.JsonNode;
导入com.fasterxml.jackson.databind.node.ArrayNode;
公共阶级秩序{
...
公共静态列表getOrders(){
字符串hostUri=Helper.getWsHostUri();
Promise Promise=WS.url(hostUri+“Orders”).get();
PromiseResult=Promise.map(
新函数(){
公共列表应用(WS.Response响应){
JsonNode json=response.asJson();
ArrayNode结果=(ArrayNode)json;
列表顺序=新的ArrayList();
Iterator it=results.Iterator();
while(it.hasNext()){
JsonNode=it.next();
订单=新订单();
order.from=node.get(“from”).asText();
order.contact=node.get(“contact”).asText();
order.amount=node.get(“amount”).asDouble();
order.status=node.get(“status”).asInt();
订单。添加(订单);
}
退货订单;
}
}
);
返回promisedResult.get();
}
}
如果你不是像我一样猜的话,我还是很高兴看到怎么做

谢谢,祝你今天愉快