2016-09-23 9 views
0

В моем требовании я читаю JsonArray (javax.json.JsonArray) из локального файла, как показано ниже:Как удалить элемент из javax.json.JsonArray в java?

JsonReader reader = Json.createReader(new FileReader(path)); 
JsonArray regAttribArr = reader.readObject().getJsonObject("Entries") 
       .getJsonArray("Attributes"); 
reader.close(); 

После этого при удалении элемента из этого массива, как показано ниже,

JsonValue tempjv = regAttribArr.get(0); 
regAttribArr.remove(tempjv); 

его бросает UnsupportedOperationException как класс JsonArray - это немодифицируемый список.

Есть ли альтернативный способ удаления элемента из этого объекта javax.json.JsonArray?

+0

В 'javax.json' типы JSON неизменны. Вам придется создавать копии самостоятельно («копии», которые не включают то, что вы хотите удалить). –

+0

В моем требовании у меня есть список объектов json, исходящих из полезной нагрузки запроса, каждый из которых один за другим по сравнению со списком json-объектов, считанных из файла. Всякий раз, когда совпадение найдено для любого из объектов json, объект должен быть удален из JsonArray, прочитанного из файла. В соответствии с комментарием каждый раз, когда ему нужно пройти, а также нужно создать новый объект jsonarray. Поэтому будет много времени потребляя. – Krutik

ответ

1

Похоже, что вам может быть лучше копировать список по отдельности и пропускать тот, который вам не нужен.

неизменяемый список только собирается быть неизменяемым

+0

Или создайте новый экземпляр: https://stackoverflow.com/a/47075432 – az3

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