【问题标题】:how can I get response value (json) to String via Java如何通过 Java 获取对 String 的响应值(json)
【发布时间】:2015-07-29 06:53:39
【问题描述】:

我有如下的json格式

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

我想从中过滤名称,Array name = [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

然后成功。

但是我该怎么做才能从响应中动态获取 json 格式到字符串 这样我就可以输入字符串 jsonString。


【问题讨论】:

标签: java json rest


【解决方案1】:

当您解析 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");
}

希望对你有所帮助。

【讨论】:

  • 如果您添加更多信息,我打赌您将有更好的机会被认出;)
  • :) @KickButtowski ..感谢您的反馈并添加了一些相关信息。
  • 不客气,但你的措辞有点不对劲。例如,请重读你的第一句话
  • @KickButtowski 谢谢 :),试图让它变得明智。如果您有其他感觉,请随时更改或添加。你的加入对我有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多