【问题标题】:How to get elements from a java string? [duplicate]如何从java字符串中获取元素? [复制]
【发布时间】:2020-10-26 05:36:36
【问题描述】:

例如,我有这个字符串

{"items":[{"match_id":"1-147440f1-7330-4c9c-9d3d-fab2e43e0754","version":2,"region":"EU"},{"match_id":"2 -543985-ndakf-948129-dfsdafsda89fsda", "版本":2","地区":"欧盟"}

我怎样才能只得到“1-147440f1-7330-4c9c-9d3d-fab2e43e0754”,所以 match_id 之后的下一个字符在“”之间。我需要它们作为字符串,所以不是 int 或其他任何东西,只是字符串。 谢谢!

【问题讨论】:

  • 看来您在这里拥有的不仅是一个字符串,而且是一个 JSON 文档。提取元素的最佳方法是使用 JSON 解析器。
  • 是的,对不起,我忘了提,我把它保存到一个字符串,但是它是 JSON 格式。所以我应该尝试使用一些用于 Java 的 JSON 模块或什么?
  • 是的,有很多可供选择。

标签: java string replace split


【解决方案1】:

这里使用的是json-simple-1.1,你可以下载jar或者通过Maven/Gradle添加依赖。

    String json = "{\"items\":[{\"match_id\":\"1-147440f1-7330-4c9c-9d3d-fab2e43e0754\",\"version\":2,\"region\":\"EU\"},{\"match_id\":\"2-543985-ndakf-948129-dfsdafsda89fsda\", \"version\":\"2\",\"region\":\"EU\"}]}";
    Object obj = new JSONParser().parse(json);

    JSONObject jo = (JSONObject) obj;
    
    JSONArray items = (JSONArray) jo.get("items");
    List<String> matchIds = new ArrayList<>();
    for(int i=0; i<items.size();i++) {
        JSONObject item = (JSONObject) items.get(i);    
        matchIds.add(item.get("match_id").toString());
    }
    
    System.out.println(matchIds.get(0));

【讨论】:

  • 非常感谢!会试试看,我想我是这样想的。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多