java - 将多个 JSONArray 添加到 JSONArray

标签 java

我正在寻找一个选项,可以将多个值添加到 JSONArray 并将其添加到另一个 JSONArray 中,而无需创建多个变量。例如:

    JSONArray array1 = new JSONArray();
    JSONArray array2 = new JSONArray();
    array2.add("ex1");
    array2.add("ex2");
    array2.add("ex3");
    array1.add(array2);

变成这样的东西:

    JSONArray array1 = new JSONArray();
    array1.add(new JSONArray().addAll(Arrays.asList("ex1","ex2","ex3")));
    array1.add(new JSONArray().addAll(Arrays.asList("ex4","ex5","ex6")));

有办法做到这一点吗?谢谢大家

最佳答案

可以使用gson来完成:

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.2</version>
</dependency>

这是一个运行代码:

package com.test;

import java.util.Arrays;
import java.util.List;

import com.google.gson.JsonArray;

public class JArray {

    public static void main(String[] args) {
        JsonArray array1 = new JsonArray();

        array1.addAll(getJsonArrayFromList(Arrays.asList("ex1", "ex2", "ex3")));
        array1.addAll(getJsonArrayFromList(Arrays.asList("ex4", "ex5", "ex6")));

        System.out.println("array1 = " + array1);
    }

    public static JsonArray getJsonArrayFromList(List<String> list) {
        JsonArray array = new JsonArray();
        for (String s : list) {
            array.add(s);
        }
        return array;
    }

}

输出:

array1 = ["ex1","ex2","ex3","ex4","ex5","ex6"]

关于java - 将多个 JSONArray 添加到 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49898301/

相关文章:

java - 我想要一个 E 表示法双变量转到字符串,但是......?

java - 在 JAVA 中将列表对象添加到另一个列表中

java - 这是好的设计吗 : using a pure abstract class to facilitate the use of factory method

java - Eclipse 插件 - 无法解析 Swing 类引用

java - 使用 REST API 将 block Blob 列表放在 Azure 存储上时,指定的 XML 在语法上无效错误

Java StackOverflowError 在 java.io.PrintStream.write(PrintStream.java :480) and no further stack trace

java - 为什么它被假定为 long 没有后缀

java - 抑制 Java 首选项 Systemroot 警告

java - 为什么双参数化函数接受 float 而不是相反?

java - Netbeans 在保存时部署 : how is it supposed to work?