我必须像这样填充一个json对象,假设它被命名为detailJSON:
{"amount": "5.00", "ac_no": "123456" }
Run Code Online (Sandbox Code Playgroud)
我是这样做的:
detailJSON.put("amount","5.00");
detailJSON.put("ac_no","123456");
Run Code Online (Sandbox Code Playgroud)
在此之后,在一些共享首选项中输入详细信息,现在我想清除此JSONObject并使用相同的detailJSON对象来存储另一个json(使用不同的键),这样:
{"amount":"6.00", "loan_no":"123456"}
Run Code Online (Sandbox Code Playgroud)
我知道有一个方法remove(),它删除了特定的键和相应的值.
这有效:
detailJSON.remove("amount");
detailJSON.remove("ac_no");
Run Code Online (Sandbox Code Playgroud)
然后使用它 -
detailJSON.put("amount","6.0");
detailJSON.put("loan_no","123456");
Run Code Online (Sandbox Code Playgroud)
现在这是一个非常简单的例子.在我正在处理的代码中,我有很多键,所以使用remove实际上增加了LOC.另外,每次删除之前我都需要检查JSONObject是否has
是特定键.
有没有其他方法,我可以实现清除JSONObject?
我试过了
detailJSON=null ;
detailJSON=new JSONObject();
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我基本上是在寻找类似clear()方法的东西,如果存在的话.
Iterator keys = detailJSON.keys();
while(keys.hasNext())
detailJSON.remove((String)detailJSON.keys().next());
Run Code Online (Sandbox Code Playgroud)
这个版本有一个开销,因为每次都要获取键集,但它可以正常工作,不会出现并发修改异常。
while(json.length()>0)
json.remove(json.keys().next());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18840 次 |
最近记录: |