2015-08-01 7 views
2

Я использую javax.json и когда я попытался изменения jsonObject в моем jsonArray:Как изменить 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.

ответ

3

Javadoc из JsonArray заявляет

JsonArray представляет собой неизменный массив JSON (упорядоченную последовательность ноля или более значений). Он также предоставляет немодифицируемый вид списка значений в массиве.

Вы не можете изменить его. Создайте новый со значениями, которые вы хотите.

Смежные вопросы