gpt4 book ai didi

java - 使用 javax/json,如何将元素添加到现有的 JsonArray 中?

转载 作者:行者123 更新时间:2023-11-30 07:25:06 25 4
gpt4 key购买 nike

我从文件中读取了一个 JSON 数组,但我想向该数组中添加其他条目。我将如何使用 javax.json 库来做到这一点?

private String getJson(FileInputStream fis) throws IOException {
JsonReader jsonReader = Json.createReader(fis);
// Place where I'd like to get more entries.

String temp = jsonReader.readArray().toString();
jsonReader.close();
fis.close();
return temp;
}

文件的 JSON 格式预览:

[
{"imgOne": "test2.png", "imgTwo": "test1.png", "score": 123123.1},
{"imgOne": "test2.png", "imgTwo": "test1.png", "score": 1234533.1}
]

最佳答案

简单的回答是你不能。 JsonArray (以及其他值类型)是不可变的。 javadoc 指出

JsonArray represents an immutable JSON array (an ordered sequence of zero or more values). It also provides an unmodifiable list view of the values in the array.

长答案是通过复制旧对象中的值以及您需要的任何新值来创建一个新的 JsonArray 对象。

例如

// Place where I'd like to get more entries.
JsonArray oldArray = jsonReader.readArray();
// new array builder
JsonArrayBuilder builder = Json.createArrayBuilder();
// copy over old values
for (JsonValue value : oldArray) {
builder.add(value);
}
// add new values
builder.add("new string value");
// done
JsonArray newArray = builder.build();

关于java - 使用 javax/json,如何将元素添加到现有的 JsonArray 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36918042/

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