【问题标题】:How to get an jsonarray from a list of strings如何从字符串列表中获取 jsonarray
【发布时间】:2019-02-21 23:44:47
【问题描述】:

我最近进行了一次编码挑战,并且真的被困在如何从字符串列表中获取值成为 JSONArray 的问题上。

假设给定一个班级列表,您希望将学生的姓名存储在 JSONArray 中。

一年级
汤姆

埃德
水晶

二年级
菲比
辛迪
吉尔
马特

三年级
水晶

哈利
狮子座

// To access all the lists in the collection
List<String> classes = new ArrayList<String>(jsonInput.keySet());

之后,我是否循环遍历类以获取名称并将它们放入 JSONArray?

【问题讨论】:

  • 这是哪个库?
  • 能不能用简单的输入输出解释一下

标签: java arrays json list


【解决方案1】:

如果您要从 ArrayList&lt;String&gt; 转到 JSONArray,那么您可以使用 GSON

ArrayList<String> listOfStudentNames = new ArrayList<String>;
listOfStudentNames.add("Tom");
listOfStudentNames.add("Cat");
listOfStudentNames.add("Ed");
...
Gson gson = new Gson();
String data = gson.toJson(listOfStudentNames);
JsonArray jsonArray = new JsonParser().parse(data).getAsJsonArray();

【讨论】:

    【解决方案2】:

    将以下依赖项添加到您的代码中

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.5</version>
    </dependency>
    

    并在地图中添加您的列表,然后将其转换为 JSON 字符串。

    Map<String, List<String>> map=new HashMap<>();
    map.put("First Grade", list1);
    map.put("Second Grade", list2);
    map.put("Third Grade", list3);
    ObjectMapper mapper = new ObjectMapper();
    try {
        String json = mapper.writeValueAsString(map);
        System.out.println(json);
    } catch (JsonProcessingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 2019-06-08
      • 2012-05-03
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多