如何调用restlet资源

时间:2014-03-17 06:59:25

标签: java eclipse

我有一个restlet资源,如下所示:

@Get("json")

public List<String> retrieve() {

MyCityService nh = (MyCityService)getContext().getAttributes().get(MyCityService.class.getCanonicalName());

return nh.getReport();

}

你可以看到它返回一个字符串列表。我尝试使用以下代码在远程类中获取返回值:

ClientResource client = new ClientResource("http://remoteserver.com/mycity/nh/json");
System.out.println(client.get().getText());

getText()方法将List的全部内容作为一个字符串返回,但我想分别在List中添加每个字符串值。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

我建议你去JSON数据交换。 只需进行少量更改,您就可以使用任何JSON Parser for Java库来完成。 我推荐[JSON Lib](http://sourceforge.net/projects/json-lib

在您的其他网络服务中,您可以使用

@Get("json")
@Produces("MediaType.APPLICATION_JSON") // It will return JSON Object as response
public List<String> retrieve() {

MyCityService nh = (MyCityService)getContext().getAttributes().get(MyCityService.class.getCanonicalName());

return nh.getReport();

}

在客户端部分,您可以使用JSON.parser将数据解析回列表。

   JSONObject jsonObject = (JSONObject) jsonParser.parse(client.get().getText());
   System.out.println(jsonObject.get("firstname"));
   System.out.println(jsonObject.get("firstname"));