2016-06-24 31 views
1

我創建使用下面的代碼Resuse JSON對象

while(true){ 

JSONObject checks = new JSONObject(jsonString); 

} 

我如何使用這個JSON對象,而不是櫃面一個HashMap中創建一個新對象每次。比如我可以做類似下面

一個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()); 
} 

不過,老實說,我不認爲這wouldd更好。

+0

Im使用compile(「org.json:json:20140107」)。我檢查了這個,沒有像JSON.clear() –

0

的JSONObject是普通Java對象,你不能HashMap的邏輯應用到clear.Because一個HashMap是爲了存放物品/對象/任何東西的集合。從集合中,您可以清除或斷開其相關項目的引用。不適用於普通物體。

對於你的情況,你可以定義的JSONObject例如while循環外面和重用對象像下面。

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

對於每次迭代舊的對象將有資格獲得GC [垃圾收集]和一般GC算法照顧內存&性能。

+0

這樣的方法如果處理數百億記錄,則不是這樣。 – Skynet