如何在JsonArray中更改JsonObject?

时间:2015-08-01 16:24:41

标签: java json

我正在使用javax.json,当我尝试更改jsonObject中的jsonArray时:

String jsonString = "[{\"name\":\"xyz\"," +
                        "\"URL\":\"http://example.com\"}]";
JsonReader jsonReader = Json.createReader(new StringReader(jsonString));
JsonArray jsonArray = jsonReader.readArray();

String jsonNewString = "{\"name\":\"zyx\","
                         + "\"URL\":\"http://example2.com\"}]";   
jsonReader = Json.createReader(new StringReader(jsonNewString));
JsonObject jsonObject = jsonReader.readObject();
jsonReader.close();

jsonArray.remove(0);
jsonArray.add(0, jsonObject);

我遇到了这个例外:

java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)

我也尝试过:jsonArray.set(0, jsonObject);,并获得相同的UnsupportedOperationException

1 个答案:

答案 0 :(得分:3)

JsonArray州的javadoc

  

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

你无法改变它。用你想要的值创建一个新的。