Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分JsonArray_Java_Json - Fatal编程技术网

Java 拆分JsonArray

Java 拆分JsonArray,java,json,Java,Json,我想从包javax.json中拆分一个JsonArray,但我找不到一个方便的方法来完成这项工作。我浏览了文档,我只能想到迭代JsonArray并使用JsonArrayBuilder手动添加项目 是否有更方便的方法拆分阵列 请注意,我不能使用其他软件包(如google.gson)。 提前谢谢 编辑:我有一个大小为N的JsonArray,我想通过索引将它从和拆分为,并将结果保存为JsonArray 大概是这样的: JsonArray array1 = getJsonArrayOfSize(10);

我想从包
javax.json
中拆分一个
JsonArray
,但我找不到一个方便的方法来完成这项工作。我浏览了文档,我只能想到迭代
JsonArray
并使用
JsonArrayBuilder
手动添加项目

是否有更方便的方法拆分阵列

请注意,我不能使用其他软件包(如
google.gson
)。

提前谢谢

编辑:我有一个大小为
N
JsonArray
,我想通过索引
将它从
拆分为
,并将结果保存为
JsonArray

大概是这样的:

JsonArray array1 = getJsonArrayOfSize(10);
JsonArray array2 = array1.split(2,5);
与格森

List<MyModel> myModelList = gson.fromJson(jsonArray.toString(), listType);
您可以使用以下方法:


将您的
JsonArray
转换为List,然后在
List
中拆分每个项目。显示一个示例?您能详细说明拆分数组的含义吗?@VishwaRatna我添加了一个示例。请注意,我不能使用其他包(例如
google.gson
)。你读了吗?
public class Converter {
    public static void main(String[] args) {
        String str =     "{\r\n" + 
                         "\"name\":\"John\",\r\n" + 
                         "\"age\":30,\r\n" + 
                         "\"cars\":[ \"Ford\", \"BMW\", \"Fiat\" ]\r\n" + 
                         "}";

        JsonReader reader = Json.createReader(new StringReader(str));
        JsonObject object = reader.readObject();
        JsonArray array = object.getJsonArray("cars");
        System.out.println(getJsonArrayFromIndex(1, 2, array));
        System.out.println(getJsonArrayFromIndex(0, 2, array));
        System.out.println(getJsonArrayFromIndex(0, 1, array));
    }

    public static List<JsonValue> getJsonArrayFromIndex(int start, int end, JsonArray array) {
        return array.subList(start, end);       
    }
}
[BMW]
[Ford, BMW]
[Ford]
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class JsonApp {

    public static void main(String[] args) {
        List<Integer> ints = IntStream.range(1, 10).boxed().collect(Collectors.toList());
        JsonArrayExt array = new JsonArrayExt(ints);

        JsonArray array1 = array.subList(2, 5);
        System.out.println(array);
        System.out.println(array1);
    }
}

class JsonArrayExt {
    private final JsonArray array;

    public JsonArrayExt(List<Integer> ints) {
        this(Json.createArrayBuilder(ints).build());
    }

    public JsonArrayExt(JsonArray array) {
        this.array = Objects.requireNonNull(array);
    }

    public JsonArray subList(int fromIndex, int toIndex) {
        JsonArrayBuilder builder = Json.createArrayBuilder();
        array.subList(fromIndex, toIndex).forEach(builder::add);

        return builder.build();
    }

    @Override
    public String toString() {
        return array.toString();
    }
}
[1,2,3,4,5,6,7,8,9]
[3,4,5]