Java - net.sf.json 之 put、accumulate、element

文章转自
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());
    }
}

 

posted @ 2020-04-29 16:25  爱跳舞的程序员  阅读(412)  评论(0编辑  收藏  举报