JSONObject.keySet() - 删除从JSONObject.keySet()获取的单个密钥也删除了JSONObject中的相同密钥条目?

时间:2018-01-18 06:04:00

标签: java json set key org.json

为什么从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

1 个答案:

答案 0 :(得分:2)

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

但可能是java.util.Map.keySet()状态的JavaDoc(强调我的):

  

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