遇到个问题记录一下
把jsonObjectA通过=和new赋值给jsonObjectB,在jsonObjectB remove key AAA,会导致把jsonObjectA的AAA也删了,没有细想,想来估计是引用的同一个内存地址数据导致的,后来改为把jsonObjectB.putAll(jsonObjectA),然后再remove 就没问题了
错误做法:
public static void main(String[] args) {
JSONObject jsonObject=new JSONObject();
jsonObject.put("AAA","111");
jsonObject.put("BBB","222");
jsonObject.put("CCC","333");
JSONObject jsonObject1=new JSONObject();
jsonObject1=new JSONObject(jsonObject);
jsonObject1.remove("AAA");
System.out.println(jsonObject);
System.out.println(jsonObject1);
}
正确做法:
public static void main(String[] args) {
JSONObject jsonObject=new JSONObject();
jsonObject.put("AAA","111");
jsonObject.put("BBB","222");
jsonObject.put("CCC","333");
JSONObject jsonObject1=new JSONObject();
jsonObject1.putAll(jsonObject);
jsonObject1.remove("AAA");
System.out.println(jsonObject);
System.out.println(jsonObject1);
}