文章转自
https://www.cnblogs.com/ikoo4396/p/8214110.html
个人小结:
1,put 如果put的值为空,则删除这个属性,已有相同可以则替换值
2,accumulate追加值,最终值会变成数组的形式,accumulate可以将值变为null,而不删除该key
3,element跟put差不多,没看出区别
package com.xxx; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestJSON { public static void main(String[] args) { /** * public Object put(Object key, Object value) * 将value映射到key下 * 如果此JSONObject对象之前存在一个value在这个key下,那么当前的value会替换掉之前的value */ System.out.println("---------------------------------测试put方法------------------------------ " ); JSONObject jsonObject = new JSONObject(); jsonObject.put("one", "first"); // jsonObject: {"one":"first"} System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("two", "second"); // jsonObject: {"one":"first","two":"second"} System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("two", "cover"); // jsonObject: {"one":"first","two":"cover"} System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("one", null);// value为null的话,直接移除key // jsonObject: {"two":"cover"} System.out.println("jsonObject: " + jsonObject.toString()); System.out.println("---------------------------------测试accumulate方法------------------------------ " ); /** * public JSONObject accumulate(String key, Object value) * 累积value到这个key下 * 1.如果当前已经存在一个value在这个key下,那么会有一个JSONArray将存储在这个key下来保存所有累积的value * 2.如果已经存在一个JSONArray,那么当前的value就会添加到这个JSONArray中 */ JSONObject jsonObj = new JSONObject(); jsonObj.accumulate("Servers", null);// 允许value为null jsonObj.accumulate("Servers", "Tomcat"); jsonObj.put("Codes", "Java"); jsonObj.accumulate("Codes", "JavaScript"); // jsonObj: {"Servers":[null,"Tomcat"],"Codes":["Java","JavaScript"]} System.out.println("jsonObj: " + jsonObj.toString()); System.out.println("---------------------------------测试element方法------------------------------ " ); /** * public JSONObject element(String key, Object value) */ JSONObject object = new JSONObject(); object.element("price", "500"); object.element("price", "1000"); // object: {"price":"1000"} 疑问: 这和put有何区别??? 说好的会调用accumulate呢??? System.out.println("object: " + object.toString()); } }