我有一个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中添加每个字符串值。有没有办法做到这一点?
答案 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"));