【问题标题】:Get value from jsonelement's jsonarray with Java and Gson使用 Java 和 Gson 从 jsonelement 的 jsonarray 中获取值
【发布时间】:2020-02-14 15:22:25
【问题描述】:

我有这个代码:

try {
    URL url = new URL("My api url");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.addRequestProperty("User-Agent", "MyUserAgent");

    InputStream inputStream = connection.getInputStream();
    InputStreamReader reader = new InputStreamReader(inputStream);

    JsonElement element = new JsonParser().parse(reader);

    System.out.println(element);
} catch (IOException e) {
    e.printStackTrace();
}

我的 api 响应:

[
  {
    "id": 12345,
    "name": "1.0"
  }
]

我需要将name参数作为字符串获取,但我不知道该怎么做。

【问题讨论】:

  • 名称是字符串否? "1.0"
  • @YCF_L 是的。
  • 好的,你说的我需要将name参数作为字符串获取,但是我不知道该怎么做
  • 我想做一个返回name参数的方法。

标签: java arrays json arraylist gson


【解决方案1】:

我想你正在寻找:

JsonElement name = element.getAsJsonArray().get(0).getAsJsonObject().get("name");

输出

"1.0"

或者获取name的值:

String name = element.getAsJsonArray().get(0).getAsJsonObject().get("name").getAsString();

输出

1.0

【讨论】:

  • 如果我需要将name 值(版本)与另一个值进行比较,我该怎么做?
  • @alex3025 你能否进一步澄清你的问题或举个例子,我不明白你的意思
  • 如果我使用name 获得的版本大于另一个字符串,我想执行代码:“1.0.1”
  • @alex3025 这可能是另一个问题,但我会给你一个线索,你可以在字符串的末尾添加零,这低于你的最大版本长度,然后删除点,然后然后将两个字符串转换为整数并比较这两个整数,例如在您的情况下为“1.0”->“1.0.0”,因此您有“1.0.0”和“1.0.1”然后->“100”“101 " 那么你的行动if (Integer.valueOf("100") > Integer.valueOf("101")),就像我说的,如果你不明白我的解决方案,你可以发一个问题,我会尝试一步一步回答你
  • 我要试试你在评论里写的内容
猜你喜欢
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 2014-06-07
  • 2020-12-17
  • 1970-01-01
相关资源
最近更新 更多