Json:将对象添加到数组

时间:2014-11-10 18:08:08

标签: java arrays json

我正在使用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

1 个答案:

答案 0 :(得分:2)

JsonArray是不可变的,因此您无法向其添加对象(因此例外)。来自docs

  

JsonArray表示一个不可变的JSON数组(零个或多个值的有序序列)。它还提供了数组中值的不可修改的列表视图。

您需要使用JsonArrayBuilder个对象。至少有一种方法可以做到这一点:

  1. 创建一个JsonArrayBuilder对象。 (参见文档的链接)

  2. JsonArray array = jsonReader.readArray();对象中的每个元素添加到JsonArrayBuilderObject

  3. 添加您的JsonObject

  4. 致电.build上的JsonArrayBuilder,将其转换为包含所有元素的JsonArray