为什么删除从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
视图。[...] 该集支持元素删除,这会从地图中删除相应的映射, [...]