有没有办法,我可以清空整个 JSONObject -- java

新手上路,请多包涵

我必须像这样填充一个 json 对象,假设它被命名为 detailJSON:

 {"amount": "5.00", "ac_no": "123456" }

我这样做:

 detailJSON.put("amount","5.00");
detailJSON.put("ac_no","123456");

之后,在一些共享首选项中输入详细信息,现在我想 清除 这个 JSONObject 并使用相同的 detailJSON 对象存储另一个 json(具有不同的键),这样:

 {"amount":"6.00", "loan_no":"123456"}

我知道有一种方法 remove() 可以删除特定的键和相应的值。

这有效

 detailJSON.remove("amount");
detailJSON.remove("ac_no");

然后使用它——

 detailJSON.put("amount","6.0");
detailJSON.put("loan_no","123456");

这是一个非常简单的例子。在我正在处理的代码中,我有很多键,因此使用 remove 实际上会增加 LOC。另外,每次删除之前我都需要检查 JSONObject has 是否是那个特定的键。

有没有其他方法,我可以实现 JSONObject 的清除?

我试过了

detailJSON=null ;
detailJSON=new JSONObject();

但它不起作用。

我基本上是在寻找类似 clear() 方法的东西,如果存在的话。

原文由 inquisitive 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答
Iterator keys = detailJSON.keys();
while(keys.hasNext())
  detailJSON.remove((String)detailJSON.keys().next());

原文由 Boris Pavlović 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于每次都获取密钥集,此版本有开销,但它可以在没有并发修改异常的情况下工作。

 while(json.length()>0)
   json.remove(json.keys().next());

原文由 Bruno Jennrich 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题