2016-09-23 2 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); 

을 throw 중 UnsupportedOperationException JsonArray 클래스는 수정할 수없는 목록이므로

이 javax.json.JsonArray 객체에서 요소를 삭제하는 다른 방법이 있습니까?

+0

'javax.json' JSON 유형은 변경 불가능합니다. 복사본을 직접 만들어야합니다 (제거하려는 내용이 포함되지 않은 "복사본"). –

+0

필자는 json 객체 목록을 요청 페이로드에서 가져 오는 중입니다. 각 요청은 파일에서 읽은 json 객체 목록과 비교하여 하나씩 있습니다. 일치하는 모든 json 개체에 대한 개체가 파일에서 읽을 JsonArray에서 제거해야 할 때마다. 의견마다 매번 새로운 jsonarray 개체를 만들어야 할 때마다 트래버스해야합니다. 그래서 많은 시간이 소요될 것입니다. 태워 버리는. – Krutik

답변

1

목록별로 항목을 복사하지 않고 원하지 않는 항목을 건너 뛰는 것이 좋습니다.

수정 불가능한 목록은 변경 불가능합니다.

+0

또는 새 인스턴스를 만드십시오. https://stackoverflow.com/a/47075432 – az3

관련 문제