Jersey客户端处理JSON数据

时间:2015-06-27 18:22:23

标签: java json jersey

我正在尝试创建一个简单的Jersey客户端来处理来自公共API的数据。

使用下面的程序,我能够读取和处理数据,但我想将JSON响应转换为Java Object,以便我有一个结构。

如何根据响应构建Java对象结构。

public class RestServiceClient {

    public static void main(String[] args) {
        Client client = Client.create();
        WebResource webResource2 = client.resource("https://data.montgomerycountymd.gov/api/views/54rh-89p8/rows.json?accessType=DOWNLOAD");
        ClientResponse response2 = webResource2.accept("application/json").get(ClientResponse.class);
        if (response2.getStatus() != 200) {
            throw new RuntimeException("Failed : HTTP error code : " + response2.getStatus());
        }

        String output2 = response2.getEntity(String.class);
        System.out.println(output2);

    }


}

2 个答案:

答案 0 :(得分:3)

尝试这样的事情(使用Google Gson解析)。它并没有100%完全解析它,但它是一个开始。

order_product

答案 1 :(得分:1)

请使用以下代码将数据发送到其他网址并返回所需的对象。 (如果没有将mediatype proeprty更改为XML,则期待JSON FORMAT)

   //packages for your reference
   import com.sun.jersey.api.client.Client;
   import com.sun.jersey.api.client.WebResource;
   import com.sun.jersey.api.client.config.ClientConfig;
   import com.sun.jersey.api.client.config.DefaultClientConfig;
   import com.sun.jersey.multipart.impl.MultiPartWriter;

   //Java Code
    ClientConfig cc = new DefaultClientConfig();
    cc.getClasses().add(MultiPartWriter.class);
    final Client client = Client.create(cc);

    WebResource resource = client.resource("https://your_url");

    //class that we the rest end point expecting
    CustomInputClass input = new CustomInputClass();
    // set data to input

    CustomOutputClass output = resource
                .accept(MediaType.APPLICATION_JSON)
                .type(MediaType.APPLICATION_JSON)
                .post(CustomOutputClass.class,input);