从列表中的Restful Web Service存储JSON

时间:2014-02-25 06:22:02

标签: java json rest

我创建了一个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();
    }

所有其他方法都运行良好。

感谢。

1 个答案:

答案 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;
    }