2016-09-23 42 views
0

在我的要求,我從本地文件讀取JsonArray(javax.json.JsonArray)象下面這樣:如何在java中從javax.json.JsonArray中移除元素?

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