org.json.JsonObject的put和append方法比较

根据字面理解,append 是在后面追加,而 put 则是直接放进去,并不清楚区别到底是什么,特此测试。
发现 append(key,value) 会把 value 包装成一个数组。

        JSONArray arr=new JSONArray("[1,2,3,4]");

        JSONObject a=new JSONObject();

        JSONObject obj=new JSONObject();

        obj.put("putArr", arr).put("putObj", a);
        obj.append("appendArr", arr).append("appendObj", a);//put 和 append 区别

        System.out.println(obj.toString());//区别结果

        //a.put("key", "value");
        a.append("key1", "value1");//测试引用传值

        System.out.println(obj.toString());

        a.put("key2", "value2");
        System.out.println(obj.toString());

输出结果为:

{"appendArr":[[1,2,3,4]],"putArr":[1,2,3,4],"appendObj":[{}],"putObj":{}}


{"appendArr":[[1,2,3,4]],"putArr":[1,2,3,4],"appendObj":[{"key1":["value1"]}],"putObj":{"key1":["value1"]}}


{"appendArr":[[1,2,3,4]],"putArr":[1,2,3,4],"appendObj":[{"key1":["value1"],"key2":"value2"}],"putObj":{"key1":["value1"],"key2":"value2"}}

同时还可以发现,虽然第二个输出语句输出的 appendObj 和 putObj 与第一个不同,说明 append 是通过引用传递的,同时测试 put 也是引用传递。

你可能感兴趣的:(java)