一、
导入包:net.sf.json.JSONObject
代码
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 */ 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()); /** * 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()); /** * 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()); } }
结果如下
1 jsonObject: {"one":"first"} 2 jsonObject: {"one":"first","two":"second"} 3 jsonObject: {"one":"first","two":"cover"} 4 jsonObject: {"two":"cover"} 5 jsonObj: {"Servers":[null,"Tomcat"],"Codes":["Java","JavaScript"]} 6 object: {"price":"1000"}