JSONObject.keySet() - 删除从 JSONObject.keySet() 获取的单个密钥也会删除 JS



为什么删除从json.keySet((方法获得的密钥,也会从相应的json对象中删除特定密钥的条目?我的猜测可能是由于参考操作。如果我错了,请纠正我?

JSONObject obj = new JSONObject();
obj.put("country", "england");
obj.put("city", "london");
System.out.println(obj);   //1
Set<String> keys = obj.keySet();
System.out.println(keys);  //2
keys.remove("country");
System.out.println(keys);  //3
System.out.println(obj);   //4

输出 :

{"country":"england","city":"london"} //1
[country, city]  //2
[city]           //3
{"city":"london"}//4

对于我能找到的JSONObject实现,JSONObject.keySet()方法要么

  • 继承自java.util.Map.keySet()(例如,javax.json.JsonObject(;或
  • java.util.Map.keySet()的代表(例如 org.json.JSONObject ,您似乎正在使用(。

无论如何,JavaDoc 用于java.util.Map.keySet()状态(强调我的(:

返回此映射中包含的键的Set视图。[...] 该集支持元素删除,这会从地图中删除相应的映射, [...]

最新更新