2016-06-24 2 views
1

나는 아래의 코드 내가Resuse JSON은 객체

아래와 같이 할 수있는 해시 맵의 넣다 예를 .FOR 새로운 객체 매번 작성하는 대신이 JSON 개체를 사용할 수있는 방법

while(true){ 

JSONObject checks = new JSONObject(jsonString); 

} 

를 사용하여 JSON 객체를 생성 당신이 구현을 사용 말했듯이

HashMap h =new Hashmap 

while(true){ 
h.add("abc","pwr"); 
h.clear(); 

} 

답변

0

https://github.com/stleary/JSON-java/blob/master/JSONObject.java

당신은 키를 반복 할 수있다

Iterator<String> entryIter = jsonObject.keys(); 
while (entryIter.hasNext()) { 
    jsonObject.remove(entryIter.next()); 
} 

하지만 솔직히 나는 더 좋아지지 않을 것이라고 생각합니다.

+0

나는 compile ("org.json : json : 20140107")을 사용하여 이것을 확인했다. JSON.clear()와 같은 메소드가 없다. –

0

JSONObject는 일반 Java Object이므로 해시 맵 논리를 적용 할 수 없습니다. 따라서 Hashmap은 항목/객체/항목 모음을 저장하기 위해 만들어졌습니다. 컬렉션에서 관련 항목의 참조를 지우거나 연결을 끊을 수 있습니다. 평범한 물건에는 적합하지 않습니다.

귀하의 경우에는 while 루프 외부에서 JSONObject 인스턴스를 정의하고 아래와 같이 오브젝트를 재사용 할 수 있습니다. 각 반복 오래된 오브젝트를 들어

JSONObject checks = null; 
while(true){ 
    checks = new JSONObject(jsonString); 
} 

GC [가비지 컬렉션] 일반 GC 알고리즘 메모리 & 성능 알아서받을 것이다.

+0

수십억 개의 레코드를 처리하고 있다면 사실이 아니다. – Skynet