资讯专栏INFORMATION COLUMN

Java - net.sf.json 之 put、accumulate、element 实践与疑问

Null / 775人阅读

摘要:需要的注意版本,个别版本之间会冲突。如果当前为,那么如果这个存在的话,这个就会移除掉。如果这个之前有,那么此方法会调用方法。亲测,却不尽然,结果并不是如上的预期的效果。

net.sf.json
net.sf.json 需要的 jar


注意版本,个别版本之间会冲突。
 

Java 代码:
package com.code.ggsddu;
 
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());
    }
}

 

控制台打印结果:
jsonObject: {"one":"first"}
jsonObject: {"one":"first","two":"second"}
jsonObject: {"one":"first","two":"cover"}
jsonObject: {"two":"cover"}
jsonObj: {"Servers":[null,"Tomcat"],"Codes":["Java","JavaScript"]}
object: {"price":"1000"}

 

疑问:
net.sf.json.element :
Put a key/value pair in the JSONObject. If the value is null, then the key will be removed from the JSONObject if it is present. If there is a previous value assigned to the key, it will call accumulate.
 
大意为:将键/值对放到这个 JSONObject 对象里面。如果当前 value 为 null,那么如果这个 key 存在的话,这个 key 就会移除掉。如果这个 key 之前有 value ,那么此方法会调用 accumulate 方法。

亲测element ,却不尽然,结果并不是如上的预期的效果。为什么呢?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68168.html

相关文章

  • 千锋重庆Java学习分享Java工具类整理

    摘要:字符数组转字符数组工具字节数组转成进制表示格式的字符串需要转换的字节数组进制表示格式的字符串前面不零格式数据互转工具將字符串转换成里面可能是多个对象的情 字符数组转Stringpackage com.sunsheen.hcc.fabric.utils;/** * 字符数组工具 * @author WangSong * */...

    Blackjun 评论0 收藏0
  • kotlin学习笔记-异常好玩的list集合总结

    摘要:可能是最流行的集合类型。它是一个范性有序的集合。一个无序并不支持重复的集合。接口继承接口,集合中可以存放重复对象。集合类提供了,等高阶函数去处理。我们声明一个集合或者数组,可以转换成相应类型的集合。调用转换为可变集合。 不积跬步无以至千里,不积小流无以成江海 先看看Kotlin中for循环的遍历 fun testList(){ var StringVal = 12_...

    RebeccaZhong 评论0 收藏0
  • java网格输出的类--练习stream

    摘要:在做测试的时候,经常需要把一些信息输出到控制台,但是格式上比较乱,想弄成一个类似客户端的那个输出格式,在参考了一些资料后自己写了一个简单的控制台网格输出的类,分享代码供大家参考。使用方法暂时支持了和两种类型的数据展示,并没有提供功能。 在做测试的时候,经常需要把一些信息输出到控制台,但是格式上比较乱,想弄成一个类似SQL客户端的那个输出格式,在参考了一些资料后自己写了一个简单的控制台网...

    edgardeng 评论0 收藏0

发表评论

0条评论

Null

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<