我创建了一个RESTful Java客户端,我试图将JSON从服务器存储到List,但似乎无法做到。试图使用findAll()方法,但到目前为止没有运气。我怎么能这样做?我的代码如下:
注意:已删除对XML的所有引用。一切都是JSON。
SalaryStructureClient.java
package Consumer;
import javax.ws.rs.ClientErrorException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.WebTarget;
public class SalaryStructureClient {
private WebTarget webTarget;
private Client client;
private static final String BASE_URI = "http://swiftworld.com/mass/web";
public SalaryStructureClient() {
client = javax.ws.rs.client.ClientBuilder.newClient();
webTarget = client.target(BASE_URI).path("salarystructure");
}
public void remove(String id) throws ClientErrorException {
webTarget.path(java.text.MessageFormat.format("{0}", new Object[]{id})).request().delete();
}
Control.java
public String getCount() {
count = getClient().countREST();
return count;
}
public List<SalaryStructure> getList() {
list = getClient().findAll(List.class); //Don't really know what to do here...
return list;
}
public void saveToDB(){
JsonObject json = Json.createObjectBuilder()
.add("structureLongName", structure.getStructureLongName())
.add("structureShortName", structure.getStructureShortName())
.build();
getClient().create(json);
structure = new SalaryStructure();
}
所有其他方法都运行良好。
感谢。
答案 0 :(得分:0)
经过长时间的研究,最终使用以下方法使其工作:
public List<SalaryStructure> getList() {
list = client1.target("http://swiftworld.com/mass/web")
.path("salarystructure")
.request(MediaType.APPLICATION_JSON)
.get(new GenericType<List<SalaryStructure>>() {});
return list;
}