如何通过Java获取String的响应值(json)

时间:2015-07-29 06:53:40

标签: java json rest

我的json格式如下

{
  "items": [
    {
      "id": 0,
      "name": "name1"
    },
    {
      "id": 1,
      "name": "name2"
    }
    ]
}

我想从中过滤名称,数组名称= [name1,name2]

    @GET (Web service)
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getItem() {
        ClientConfig config = new ClientConfig();
        HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic(getUserName(),getUserPassword());
        config.register(feature);
        Client client = ClientBuilder.newClient(config);
        WebTarget service = client.target(getURI() + "/Item");
        Response response = service.request().header("Content-Type", "application/json").get();
        return response;
    }

我已经在这里试过了  http://gotoanswer.com/?q=How+to+Parse+the+this+JSON+Response+in+JAVA

然后成功。

但是我如何动态地从Response到string获取json格式 这样我就可以输入String jsonString。

1 个答案:

答案 0 :(得分:0)

当您解析json时,'items'是json中的数组。因此,如果您尝试获取“项目”,则需要将其输入到JSONArray。在这个JSONArray上迭代,你可以使用'name'和'id'定义的属性来获取数组的值。

你能这样试试吗?

JSONObject jsonObject = new JSONObject(jsonString);
JSONArray items = (JSONArray) jsonObject.get("items");

for (int 1 = 0; i < items.length(); i++)
{
    System.out.println( items.get(i).get("name");
}

希望它会对你有所帮助。