我正在使用javax.json库在Java中使用Json。 我试图在JsonArray中添加JsonObject,例如:
[
{ "some_stuff": "stuff" },
{ "some_stuff": "stuff" }
]
我需要使用与示例中相同的键添加到此数组的下一个对象,但我已冻结array.add();
JsonObject jsonObject = Json.createObjectBuilder()
.add("some_stuff", "stuff")
.build();
JsonArray array = jsonReader.readArray();
array.add(jsonObject); // UnsupportedOperationException
答案 0 :(得分:2)
JsonArray是不可变的,因此您无法向其添加对象(因此例外)。来自docs:
JsonArray表示一个不可变的JSON数组(零个或多个值的有序序列)。它还提供了数组中值的不可修改的列表视图。
您需要使用JsonArrayBuilder
个对象。至少有一种方法可以做到这一点:
创建一个JsonArrayBuilder
对象。 (参见文档的链接)
将JsonArray array =
jsonReader.readArray();
对象中的每个元素添加到JsonArrayBuilderObject
添加您的JsonObject
。
致电.build
上的JsonArrayBuilder
,将其转换为包含所有元素的JsonArray
。