为什么从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
答案 0 :(得分:2)
对于我能找到的JSONObject
实现,JSONObject.keySet()
方法
java.util.Map.keySet()
(例如javax.json.JsonObject
);或java.util.Map.keySet()
(例如org.json.JSONObject
,您似乎正在使用它。)但可能是java.util.Map.keySet()
状态的JavaDoc(强调我的):
返回此地图中包含的键的
Set
视图。 [...] 该集支持元素删除,从地图中删除相应的映射,[...]