gpt4 book ai didi

java - 拆分 JsonArray

转载 作者:行者123 更新时间:2023-12-02 04:39:38 28 4
gpt4 key购买 nike

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

有没有更方便的方法来分割数组?

请注意,我无法使用其他软件包(例如 google.gson)。

提前致谢。

编辑:我有一个大小为 NJsonArray,我想按索引 fromto< 拆分它 并将结果保存为 JsonArray

像这样:

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

最佳答案

您可以使用subList方法:

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]

关于java - 拆分 JsonArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59528817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com