1. accumulate系列方法给JSONObject累积值

1.1. accumulate累积值, 并返回JSONObject

1.1.1. JSONObject accumulate(String key, boolean value), 累积boolean类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

1.1.2. JSONObject accumulate(String key, int value), 累积int类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

1.1.3. JSONObject accumulate(String key, long value), 累积long类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

1.1.4. JSONObject accumulate(String key, double value), 累积double类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

1.1.5. JSONObject accumulate(String key, Object value), 累积Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

1.1.6. JSONObject accumulate(String key, Object value, JsonConfig jsonConfig), 累积Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。

1.2. accumulateAll累积Map值

1.2.1. void accumulateAll(Map map), 累积Map类型的值, 把Map中的键值一个一个地添加到JSONObject里。json-lib底层, 会创建一个JsonConfig对象使用。

1.2.2. void accumulateAll(Map map, JsonConfig jsonConfig), 累积Map类型的值, 把Map中的键值一个一个地添加到JSONObject里。传入了一个JsonConfig对象。

1.3. accumulate和accumulateAll总结

1.3.1. 键为String类型。累积Map值时, Map对象的key不是String类型的话, 会被转为String类型。

1.3.2. 键可以是""空字符串。

1.3.3. 键可以是"null"字符串。

1.3.4. 键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报Null Key异常。

1.3.5. 累积相同键, 把值合并为数组, 这就是累积值的含义吧。

1.3.6. 值可以是""空字符串。

1.3.7. 值可以是"null"字符串。

1.3.8. 累积空对象变量、空对象常量、JSONNull和"null", 效果是一样的, 存放的都是"null"字符串。

1.3.9. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。

1.4. 例子

1.4.1. 新建一个名为JSONObject的Java项目, 同时添加相关jar包。

1.4.2. 新建Sensor.java

package com.fj.jo;import java.io.Serializable;/*** 传感器*/
public class Sensor implements Serializable {private static final long serialVersionUID = 1L;private Boolean weightSensor; // 重力传感器private Boolean fingerSensor; // 指纹传感器private String otherSensor; // 其它传感器public Sensor() {}public Sensor(Boolean weightSensor, Boolean fingerSensor, String otherSensor) {this.weightSensor = weightSensor;this.fingerSensor = fingerSensor;this.otherSensor = otherSensor;}public Boolean getWeightSensor() {return weightSensor;}public void setWeightSensor(Boolean weightSensor) {this.weightSensor = weightSensor;}public Boolean getFingerSensor() {return fingerSensor;}public void setFingerSensor(Boolean fingerSensor) {this.fingerSensor = fingerSensor;}public String getOtherSensor() {return otherSensor;}public void setOtherSensor(String otherSensor) {this.otherSensor = otherSensor;}@Overridepublic String toString() {return "{weightSensor=" + weightSensor + ", fingerSensor=" + fingerSensor + ", otherSensor=" + otherSensor + "}";}
}

1.4.3. 新建JSONObjectAccumulate.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;/*** JSONObject * 1. JSONObject accumulate(String key, boolean value), 累积boolean类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 2. JSONObject accumulate(String key, int value), 累积int类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 3. JSONObject accumulate(String key, long value), 累积long类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 4. JSONObject accumulate(String key, double value), 累积double类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 5. JSONObject accumulate(String key, Object value), 累积Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 6. JSONObject accumulate(String key, Object value, JsonConfig jsonConfig), 累积Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。* 7. void accumulateAll(Map map), 累积Map类型的值, 把Map中的键值一个一个地添加到JSONObject里。json-lib底层, 会创建一个JsonConfig对象使用。* 8. void accumulateAll(Map map, JsonConfig jsonConfig), 累积Map类型的值, 把Map中的键值一个一个地添加到JSONObject里。传入了一个JsonConfig对象。* 9. 键为String类型。累积Map值时, Map对象的key不是String类型的话, 会被转为String类型。* 10. 键可以是""空字符串。* 11. 键可以是"null"字符串。* 12. 键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报Null Key异常。* 13. 累积相同键, 把值合并为数组, 这就是累积值的含义吧。* 14. 值可以是""空字符串。* 15. 值可以是"null"字符串。* 16. 累积空对象变量、空对象常量、JSONNull和"null", 效果是一样的, 存放的都是"null"字符串。* 17. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。*/
public class JSONObjectAccumulate {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor(true, true, "姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject().accumulate("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)").accumulate("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD").accumulate("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)").accumulate("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// Object key MapMap<Object, String> objKeyMap = new HashMap<Object, String>();objKeyMap.put(8, "8GB");objKeyMap.put(128.0d, "128GB");objKeyMap.put(990L, "麒麟990");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null对象变量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro") // 累积String类型的值, 被当作Object类型来累积, 存放的是String类型的值.accumulate("support5G", true) // 累积boolean类型的值.accumulate("price", 5988) // 累积int类型的值.accumulate("productCode", 2601010188703L) // 累积long类型的值.accumulate("screenSize", 6.58D) // 累积double类型的值.accumulate("mobileColor", mobileColor) // 累积数组类型的值, 被当作Object类型来累积, 存放的是JSONArray类型的值.accumulate("isp", isp) // 累积集合类型的值, 被当作Object类型来累积, 存放的是JSONArray类型的值.accumulate("mainParam", mainParam) // 累积Map类型的值, 被当作Object类型来累积, 存放的是JSONObject类型的值.accumulate("sensor", sensor) // 累积JavaBean对象类型的值, 被当作Object类型来累积, 存放的是JSONObject类型的值.accumulate("netJsonObject", netJsonObject) // 累积JSONObject类型的值, 被当作Object类型来累积, 存放的是JSONObject类型的值.accumulate("transferFunction", transferFunction) // 累积JSONArray类型的值, 被当作Object类型来累积, 存放的是JSONArray类型的值.accumulate("price", 2988)  // 累积相同键, 把值合并为数组.accumulate("", "键可以是空字符串") // 键可以是""空字符串.accumulate("null", "键可以是null字符串") // 键可以是"null"字符串.accumulate("empty", "") // 值可以是""空字符串.accumulate("jsonNull", jsonNull) // 累积JSONNull类型的值, 被当作Object类型来累积, 存放的是"null"字符串.accumulate("nullObjectConst", null) // 累积空对象常量, 存放的是"null"字符串.accumulate("nullObjectVar", nullObjectVar) // 累积空对象变量, 存放的是"null"字符串.accumulate("nullStr", "null", new JsonConfig()) // 值可以是"null"字符串.accumulateAll(objKeyMap); // 累积Map类型的值, 可以把Map的值一个一个地添加到JSONObject对象。 jsonObject.accumulateAll(mainParam, new JsonConfig());System.out.println(jsonObject.toString());}
}

1.4.4. 运行JSONObjectAccumulate.java

2. element系列方法给JSONObject添加值

2.1. element和elementOpt方法

2.1.1. JSONObject element(String key, boolean value), 存放boolean类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.2. JSONObject element(String key, int value), 存放int类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.3. JSONObject element(String key, long value), 存放long类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.4. JSONObject element(String key, double value), 存放double类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.5. JSONObject element(String key, Collection value), 存放Collection类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.6. JSONObject element(String key, Collection value, JsonConfig jsonConfig), 存放Collection类型的值, 并返回JSONObject。传入了一个JsonConfig对象。

2.1.7. JSONObject element(String key, Map value), 存放Map类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.8. JSONObject element(String key, Map value, JsonConfig jsonConfig), 存放Map类型的值, 并返回JSONObject。传入了一个JsonConfig对象。

2.1.9. JSONObject element(String key, Object value), 存放Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.10. JSONObject element(String key, Object value, JsonConfig jsonConfig), 存放Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。

2.1.11. JSONObject elementOpt(String key, Object value), 存放Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。

2.1.12. JSONObject elementOpt(String key, Object value, JsonConfig jsonConfig), 存放Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。

2.2. element和elementOpt总结

2.2.1. 键为String类型。

2.2.2. 键可以是""空字符串。

2.2.3. 键可以是"null"字符串。

2.2.4. element方法键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报Null Key异常。

2.2.5. elementOpt方法键可以为null对象, 丢弃。

2.2.6. 相同键, 后者替换前者。

2.2.7. 值可以是""空字符串。

2.2.8. 值可以是"null"字符串, 效果和存放JSONNull类型一样。

2.2.9. element方法, 值可以存放空对象变量, 如果是新key, 什么也不操作, 相当于自动丢弃。如果有key, 删除原来的key和值。 值存放空对象常量, 语法错误。

2.2.10. elementOpt方法, 值可以存放空对象变量/空对象常量, 但是会自动丢弃。如果有key, 不删除原来的key和值。

2.2.11. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。

2.3. 例子

2.3.1. 新建JSONObjectAccumulate.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;/*** JSONObject* 1. JSONObject element(String key, boolean value), 存放boolean类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 2. JSONObject element(String key, int value), 存放int类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 3. JSONObject element(String key, long value), 存放long类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 4. JSONObject element(String key, double value), 存放double类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 5. JSONObject element(String key, Collection value), 存放Collection类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 6. JSONObject element(String key, Collection value, JsonConfig jsonConfig), 存放Collection类型的值, 并返回JSONObject。传入了一个JsonConfig对象。* 7. JSONObject element(String key, Map value), 存放Map类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 8. JSONObject element(String key, Map value, JsonConfig jsonConfig), 存放Map类型的值, 并返回JSONObject。传入了一个JsonConfig对象。* 9. JSONObject element(String key, Object value), 存放Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 10. JSONObject element(String key, Object value, JsonConfig jsonConfig), 存放Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。* 11. JSONObject elementOpt(String key, Object value), 存放Object类型的值, 并返回JSONObject。json-lib底层, 会创建一个JsonConfig对象使用。* 12. JSONObject elementOpt(String key, Object value, JsonConfig jsonConfig), 存放Object类型的值, 并返回JSONObject。传入了一个JsonConfig对象。* 13. 键为String类型。* 14. 键可以是""空字符串。* 15. 键可以是"null"字符串。* 16. element方法键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报Null Key异常。* 17. elementOpt方法键可以为null对象, 丢弃。 * 18. 相同键, 后者替换前者。* 19. 值可以是""空字符串。* 20. 值可以是"null"字符串, 效果和存放JSONNull类型一样。* 21. element方法, 值可以存放空对象变量, 如果是新key, 什么也不操作, 相当于自动丢弃。如果有key, 删除原来的key和值。 值存放空对象常量, 语法错误。* 22. elementOpt方法, 值可以存放空对象变量/空对象常量, 但是会自动丢弃。如果有key, 不删除原来的key和值。* 23. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。*/
public class JSONObjectElement {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor(true, true, "姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)").element("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)").element("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null对象变量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") // 存放String类型的值, 被当作Object类型来存放, 存放的是String类型的值.element("support5G", true) // 存放boolean类型的值.element("price", 5988) // 存放int类型的值.element("productCode", 2601010188703L) // 存放long类型的值.element("screenSize", 6.58D) // 存放double类型的值.element("mobileColor", mobileColor) // 存放数组类型的值, 被当作Object类型来存放, 存放的是JSONArray类型的值.element("isp", isp) // 存放集合类型的值, 被当作Collection类型来存放, 存放的是JSONArray类型的值.element("mainParam", mainParam) // 存放Map类型的值, 存放的是JSONObject类型的值.element("sensor", sensor) // 存放JavaBean对象类型的值, 被当作Object类型来存放, 存放的是JSONObject类型的值.element("netJsonObject", netJsonObject) // 存放JSONObject类型的值, 被当作 Map类型来存放, 存放的是JSONObject类型的值.element("transferFunction", transferFunction) // 存放JSONArray类型的值, 被当作Collect类型来存放, 存放的是JSONArray类型的值.element("price", 2988) // 存放相同键值, 新值替换旧值.element("", "键可以是空字符串") // 键可以是""空字符串.element("null", "键可以是null字符串") // 键可以是"null"字符串.element("empty", "") // 值可以是""空字符串.element("element_jsonNull", jsonNull) // 使用element方法, 存放JSONNull类型的值, 被当作Object类型来存放, 存放的是"null"字符串.element("element_nullObjectVar", nullObjectVar) // element方法, 值可以存放空对象变量, 如果是新key, 什么也不操作, 相当于自动丢弃。如果有key, 删除原来的key和值
//      .element("element_nullObjectConst", null) // element方法, 值存放空对象常量, 语法错误.element("element_nullStr", "null") // 值可以是"null"字符串.elementOpt("elementOpt_jsonNull", jsonNull) // elementOpt方法, 存放JSONNull类型的值, 被当作Object类型来存放, 存放的是"null"字符串.elementOpt("elementOpt_nullObjectVar", nullObjectVar) // elementOpt方法, 存放空对象变量, 会自动丢弃。如果有key, 不删除原来的key和值.elementOpt("elementOpt_nullObjectConst", null) // elementOpt方法, 存放空对象常量, 会自动丢弃。如果有key, 不删除原来的key和值.elementOpt("elementOpt_nullStr", "null"); // elementOpt方法, 值可以是"null"字符串System.out.println(jsonObject.toString());}
}

2.3.2. 运行JSONObjectAccumulate.java

3. put系列方法给JSONObject添加值

3.1. put和putAll方法

3.1.1. Object put(Object key, Object value), 存放值, 并返回先前值, 如果先前有key返回先前值, 如果没有返回null。json-lib底层, 会创建一个JsonConfig对象使用。

3.1.2. void putAll(Map map), 存放Map值, 可以把Map的值一个一个地添加到JSONObject对象。json-lib底层, 会创建一个JsonConfig对象使用。

3.1.3. void putAll(Map map, JsonConfig jsonConfig),存放Map值, 可以把Map的值一个一个地添加到JSONObject对象。传入了一个JsonConfig对象。

3.2. put和putAll方法总结

3.2.1. put存放值, 把键和值都当作Object类型。

3.2.2. 键为String类型。key不是String类型的话, 会被转为String类型。

3.2.3. 键可以是""空字符串。

3.2.4. 键可以是"null"字符串。

3.2.5. 键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报key is null异常。

3.2.6. 相同键, 后者替换前者。如果先前有key返回先前值, 如果没有返回null。

3.2.7. 值可以是"null"字符串, 效果和存放JSONNull类型一样。

3.2.8. 值可以存放空对象变量/常量, 但是会自动丢弃。并删除先前的键和值。

3.2.9. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。

3.3. 例子

3.3.1. 新建JSONObjectPut.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;/*** JSONObject* 1. Object put(Object key, Object value), 存放值, 并返回先前值, 如果先前有key返回先前值, 如果没有返回null。json-lib底层, 会创建一个JsonConfig对象使用。* 2. void putAll(Map map), 存放Map值, 可以把Map的值一个一个地添加到JSONObject对象。json-lib底层, 会创建一个JsonConfig对象使用。* 3. void putAll(Map map, JsonConfig jsonConfig),存放Map值, 可以把Map的值一个一个地添加到JSONObject对象。传入了一个JsonConfig对象。* 4. put存放值, 把键和值都当作Object类型。* 5. 键为String类型。key不是String类型的话, 会被转为String类型。* 6. 键可以是""空字符串。* 7. 键可以是"null"字符串。* 8. 键不能为null对象。编写代码的时候, 可以把null对象作为键, 没有语法错误,但是运行时会报key is null异常。* 9. 相同键, 后者替换前者。如果先前有key返回先前值, 如果没有返回null。* 10. 值可以是"null"字符串, 效果和存放JSONNull类型一样。* 11. 值可以存放空对象变量/常量, 但是会自动丢弃。并删除先前的键和值。* 12. 事实上都是调用Java底层的 Object java.util.Map.put(Object key, Object value)方法来存放值的。*/
public class JSONObjectPut {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor();sensor.setWeightSensor(true);sensor.setFingerSensor(true);sensor.setOtherSensor("姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject();netJsonObject.put("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)");netJsonObject.put("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD");netJsonObject.put("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)");netJsonObject.put("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// Object key MapMap<Object, String> objKeyMap = new HashMap<Object, String>();objKeyMap.put(8, "8GB");objKeyMap.put(128.0d, "128GB");objKeyMap.put(990L, "麒麟990");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null对象变量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.put("name", "HUAWEI P40 Pro"); // 存放String类型的值, 被当作Object类型来存放, 存放的是String类型的值jsonObject.put("support5G", true); // 存放boolean类型的值, 被当作Object类型来存放, 存放的是boolean类型的值jsonObject.put("price", 5988); // 存放int类型的值, 被当作Object类型来存放, 存放的是int类型的值jsonObject.put("productCode", 2601010188703L); // 存放long类型的值, 被当作Object类型来存放, 存放的是long类型的值jsonObject.put("screenSize", 6.58D); // 存放double类型的值, 被当作Object类型来存放, 存放的是double类型的值jsonObject.put("mobileColor", mobileColor); // 存放数组类型的值, 被当作Object类型来存放, 存放的是JSONArray类型的值jsonObject.put("isp", isp); // 存放集合类型的值, 被当作Object类型来存放, 存放的是JSONArray类型的值jsonObject.put("mainParam", mainParam);// 存放Map类型的值, 被当作Object类型来存放, 存放的是JSONObject类型的值jsonObject.put("sensor", sensor); // 存放JavaBean对象类型的值, 被当作Object类型来存放, 存放的是JSONObject类型的值jsonObject.put("netJsonObject", netJsonObject); // 存放JSONObject类型的值, 被当作Object类型来存放, 存放的是JSONObject类型的值jsonObject.put("transferFunction", transferFunction); // 存放JSONArray类型的值, 被当作Object类型来存放, 存放的是JSONArray类型的值jsonObject.put("price", 2988); // 存放相同键值, 新值替换旧值jsonObject.put("", "键可以是空字符串"); // 键可以是""空字符串jsonObject.put("null", "键可以是null字符串"); // 键可以是"null"字符串jsonObject.put("empty", ""); // 值可以是""空字符串jsonObject.put("jsonNull", jsonNull); // 存放JSONNull类型的值, 被当作Object类型来存放, 存放的是"null"字符串jsonObject.put("nullObjectVar", nullObjectVar); // 存放空对象变量, 被丢弃。如果之前有这个key, 删除先前的键和值。 jsonObject.put("nullObjectConst", null); // 存放空对象常量, 被丢弃 。如果之前有这个key, 删除先前的键和值。jsonObject.put("nullStr", "null"); // 值可以是"null"字符串jsonObject.putAll(objKeyMap); // 存放Map类型的值, 可以把Map的值一个一个地添加到JSONObject对象。 jsonObject.putAll(mainParam, new JsonConfig());System.out.println(jsonObject.toString());}
}

3.3.2. 运行JSONObjectPut.java

4. accumulate、element、put给JSONObject添加值对比

4.1. accumulate给JSONObject累积值

4.1.1. accumulate可以累积boolean、int、long、double、Object类型的值。

4.1.2. 键为String类型。累积Map值时, Map对象的key不是String类型的话, 会被转为String类型。

4.1.3. 累积相同键, 把值合并为数组。

4.2. element给JSONObject添加值

4.2.1. element可以存放boolean、int、long、double、Collection、Map、Object类型的值。

4.2.2. 键为String类型。

4.2.3. 相同键, 后者替换前者。

4.3. put给JSONObject添加值

4.3.1. put存放值, 把键和值都当作Object类型。

4.3.2. 键为String类型。key不是String类型的话, 会被转为String类型。

4.3.3. 相同键, 后者替换前者。如果先前有key返回先前值, 如果没有返回null。

4.4. element的优势

4.4.1. 事实上, 键只能是String类型。少类型转换。

4.4.2. 事实上, 值可以是String, boolean、int、long、double、JSONNull、JSONObject、JSONArray、Object类型的值。类型丰富。

5. JSONObject的has方法

5.1. boolean has(String key), 查明JSONObject是否包含指明的键。如果包含返回true, 不包含返回false。

5.2. 新建JSONObjectHas.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;/*** JSONObject* 1. boolean has(String key), 查明JSONObject是否包含指明的键。如果包含返回true, 不包含返回false。*/
public class JSONObjectHas {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor();sensor.setWeightSensor(true);sensor.setFingerSensor(true);sensor.setOtherSensor("姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)").element("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)").element("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();JSONObject jsonObject = new JSONObject();jsonObject.element("jsonNull", jsonNull).element("mobileColor", mobileColor) .element("isp", isp) .element("mainParam", mainParam) .element("sensor", sensor) .element("netJsonObject", netJsonObject) .element("transferFunction", transferFunction); System.out.println(jsonObject.has("jsonNull"));System.out.println(jsonObject.has("mobileColor")); // 查明JSONObject是否包含mobileColor键System.out.println(jsonObject.has("main_Param"));System.out.println(jsonObject.has("sensor"));System.out.println(jsonObject.has("netJsonObject"));System.out.println(jsonObject.has("transferFunction"));}
}

5.3. 运行JSONObjectHas.java

6. JSONObject的get方法

6.1. String getString(String key), 获得键相关联的String类型的值。

6.2. boolean getBoolean(String key), 获得键相关联的boolean类型的值。

6.3. int getInt(String key), 获得键相关联的int类型的值。

6.4. long getLong(String key), 获得键相关联的long类型的值。可以接收int类型的值。

6.5. double getDouble(String key), 获得键相关联的double类型的值。

6.6. JSONArray getJSONArray(String key), 获得键相关联的JSONArray类型的值。

6.7. JSONObject getJSONObject(String key), 获得键相关联的JSONObject类型的值。

6.8. Object get(String key), 获得键相关联的Object类型的值。只要键存在, 可以接收任何类型的值。

6.9. 试图获取一个不存在的key, 发生错误。

6.10. 如果类型不匹配不会报错, 返回该类型的默认值。

6.11. 新建JSONObjectGet.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;/*** JSONObject* 1. String getString(String key), 获得键相关联的String类型的值。* 2. boolean getBoolean(String key), 获得键相关联的boolean类型的值。* 3. int getInt(String key), 获得键相关联的int类型的值。* 4. long getLong(String key), 获得键相关联的long类型的值。可以接收int类型的值。* 5. double getDouble(String key), 获得键相关联的double类型的值。* 6. JSONArray    getJSONArray(String key), 获得键相关联的JSONArray类型的值。* 7. JSONObject getJSONObject(String key), 获得键相关联的JSONObject类型的值。* 8. Object get(String key), 获得键相关联的Object类型的值。只要键存在, 可以接收任何类型的值。* 9. 试图获取一个不存在的key, 发生错误。* 10. 如果类型不匹配不会报错, 返回该类型的默认值。*/
public class JSONObjectGet {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor();sensor.setWeightSensor(true);sensor.setFingerSensor(true);sensor.setOtherSensor("姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)").element("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)").element("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D) .element("jsonNull", jsonNull).element("mobileColor", mobileColor) .element("isp", isp) .element("mainParam", mainParam) .element("sensor", sensor) .element("netJsonObject", netJsonObject) .element("transferFunction", transferFunction); String name = jsonObject.getString("name"); // 获取键相关联的String值boolean support5G = jsonObject.getBoolean("support5G"); // 获取键相关联的boolean值int price = jsonObject.getInt("price"); // 获取键相关联的int值long productCode = jsonObject.getLong("productCode"); // 获取键相关联的long值double screenSize = jsonObject.getDouble("screenSize"); // 获取键相关联的double值// 获取键相关联的JSONArray值。我们存放的数组类型值, 被当作JSONArray类型来存放, 所以用getJSONArray来获取。JSONArray getMobileColor = jsonObject.getJSONArray("mobileColor"); // 获取键相关联的JSONArray值。我们存放的集合类型值, 被当作JSONArray类型来存放, 所以用getJSONArray来获取。JSONArray getIsp = jsonObject.getJSONArray("isp"); // 获取键相关联的JSONObject值。我们存放的Map类型值, 被当作JSONObject类型来存放, 所以用getJSONObject来获取。JSONObject getmainParam = jsonObject.getJSONObject("mainParam"); JSONObject getNetJsonObject = jsonObject.getJSONObject("netJsonObject"); // 获取键相关联的JSONObject值JSONArray getTransferFunction = jsonObject.getJSONArray("transferFunction"); // 获取键相关联的JSONArray值Object getSensor = jsonObject.get("sensor"); // 获取键相关联的Object值Object getJsonNull = jsonObject.get("jsonNull"); // 获取键相关联的Object值System.out.println("name = " + name);System.out.println("support5G = " + support5G);System.out.println("price = " + price);System.out.println("productCode = " + productCode);System.out.println("screenSize = " + screenSize);System.out.println("getMobileColor = " + getMobileColor.toString()); System.out.println("getIsp = " + getIsp.toString());System.out.println("getmainParam = " + getmainParam.toString());System.out.println("getNetJsonObject = " + getNetJsonObject.toString());System.out.println("getTransferFunction = " + getTransferFunction.toString());System.out.println("getSensor = " + getSensor.toString());System.out.println("getJsonNull = " + getJsonNull.toString());}
}

6.12. 运行JSONObjectGet.java

7. JSONObject的opt方法

7.1. String optString(String key), 获得键相关联的String类型的值。

7.2. boolean optBoolean(String key), 获得键相关联的boolean类型的值。

7.3. int optInt(String key), 获得键相关联的int类型的值。

7.4. long optLong(String key), 获得键相关联的long类型的值。可以接收int类型的值。

7.5. double optDouble(String key), 获得键相关联的double类型的值。

7.6. JSONArray optJSONArray(String key), 获得键相关联的JSONArray类型的值。

7.7. JSONObject optJSONObject(String key), 获得键相关联的JSONObject类型的值。

7.8. Object opt(String key), 获得键相关联的Object类型的值。只要键存在, 可以接收任何类型的值。

7.9. String optString(String key, String defaultValue), 获得键相关联的String类型的值, 可以指定一个String类型的默认值。

7.10. boolean optBoolean(String key, boolean defaultValue), 获得键相关联的boolean类型的值, 可以指定一个boolean类型的默认值。

7.11. int optInt(String key, int defaultValue), 获得键相关联的int类型的值, 可以指定一个int类型的默认值。

7.12. long optLong(String key, long defaultValue), 获得键相关联的long类型的值, 可以指定一个long类型的默认值。可以接收int类型的值。

7.13. double optDouble(String key, double defaultValue), 获得键相关联的double类型的值, 可以指定一个double类型的默认值。

7.14. 试图获取一个不存在的key, 返回该类型的默认值或者使用默认值(相比get获取值更实用)。

7.15. 可以给String、int、boolean、double、long类型指定默认值(这是相比get获取值的唯一好处)。

7.16. 假如试图获取一个不存在的JSONObject、JSONArray、Object类型的值, 会返回空对象, 容易发生空指针异常。这个时候我们可以结合has判断键不存在的时候, 指定默认值, 防止发生空指针异常。opt指定默认值+has判断指定默认值, 这种方式更实用。

7.17. 新建JSONObjectOpt.java

package com.fj.jo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;/*** JSONObject* 1. String optString(String key), 获得键相关联的String类型的值。* 2. boolean optBoolean(String key), 获得键相关联的boolean类型的值。* 3. int optInt(String key), 获得键相关联的int类型的值。* 4. long optLong(String key), 获得键相关联的long类型的值。可以接收int类型的值。* 5. double optDouble(String key), 获得键相关联的double类型的值。* 6. JSONArray    optJSONArray(String key), 获得键相关联的JSONArray类型的值。* 7. JSONObject optJSONObject(String key), 获得键相关联的JSONObject类型的值。* 8. Object opt(String key), 获得键相关联的Object类型的值。只要键存在, 可以接收任何类型的值。* 9. String optString(String key, String defaultValue), 获得键相关联的String类型的值, 可以指定一个String类型的默认值。* 10. boolean optBoolean(String key, boolean defaultValue), 获得键相关联的boolean类型的值, 可以指定一个boolean类型的默认值。* 11. int optInt(String key, int defaultValue), 获得键相关联的int类型的值, 可以指定一个int类型的默认值。* 12. long   optLong(String key, long defaultValue), 获得键相关联的long类型的值, 可以指定一个long类型的默认值。可以接收int类型的值。* 13. double optDouble(String key, double defaultValue), 获得键相关联的double类型的值, 可以指定一个double类型的默认值。* 14. 试图获取一个不存在的key, 返回该类型的默认值或者使用默认值(相比get获取值更实用)。* 15. 可以给String、int、boolean、double、long类型指定默认值(这是相比get获取值的唯一好处)。* 16. 假如试图获取一个不存在的JSONObject、JSONArray、Object类型的值, 会返回空对象, 容易发生空指针异常。这个时候我们可以结合has判断键不存在的时候, 指定默认值, 防止发生空指针异常。* opt指定默认值+has判断指定默认值, 这种方式更实用。*/
public class JSONObjectOpt {public static void main(String[] args) {// 数组String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP网络服务提供商isp.add("移动");isp.add("联通");isp.add("电信");// MapMap<String, String> mainParam = new HashMap<String, String>();mainParam.put("runtimeMemory", "8GB");mainParam.put("mobileMemory", "128GB");mainParam.put("CPUType", "HUAWEI Kirin 990 5G(麒麟990 5G)");mainParam.put("CPUCount", "八核");// Java BeanSensor sensor = new Sensor();sensor.setWeightSensor(true);sensor.setFingerSensor(true);sensor.setOtherSensor("姿态感应器、色温传感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移动5G(NR)/联通5G(NR)/电信5G(NR)").element("4G", "移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)").element("2G", "主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D) .element("jsonNull", jsonNull).element("mobileColor", mobileColor) .element("isp", isp) .element("mainParam", mainParam) .element("sensor", sensor) .element("netJsonObject", netJsonObject) .element("transferFunction", transferFunction); String name = jsonObject.optString("name", ""); // 获取键相关联的String值, 并指定""空字符串为默认值boolean support5G = jsonObject.optBoolean("support5G", false); // 获取键相关联的boolean值, 并指定false为默认值int price = jsonObject.optInt("price", 0); // 获取键相关联的int值, 并指定0为默认值long productCode = jsonObject.optLong("productCode", 0L); // 获取键相关联的long值, 并指定0L为默认值double screenSize = jsonObject.optDouble("screenSize", 0.0D); // 获取键相关联的double值, 并指定0.0D为默认值// 获取键相关联的JSONArray值。我们存放的数组类型值, 被当作JSONArray类型来存放, 所以用optJSONArray来获取。JSONArray getMobileColor = jsonObject.optJSONArray("mobileColor"); // 获取键相关联的JSONArray值。我们存放的集合类型值, 被当作JSONArray类型来存放, 所以用optJSONArray来获取。JSONArray getIsp = jsonObject.optJSONArray("isp"); // 获取键相关联的JSONObject值。我们存放的Map类型值, 被当作JSONObject类型来存放, 所以用optJSONObject来获取。JSONObject getmainParam = jsonObject.optJSONObject("mainParam"); JSONObject getNetJsonObject = jsonObject.optJSONObject("netJsonObject"); // 获取键相关联的JSONObject值JSONArray getTransferFunction = jsonObject.optJSONArray("transferFunction"); // 获取键相关联的JSONArray值Object getSensor = jsonObject.opt("sensor"); // 获取键相关联的Object值Object getJsonNull = jsonObject.opt("jsonNull"); // 获取键相关联的Object值// 通过has判断键不存在的时候, 给对象类型指定一个默认值if(!jsonObject.has("jsonNull")) {getJsonNull = JSONNull.getInstance().toString();}System.out.println("name = " + name);System.out.println("support5G = " + support5G);System.out.println("price = " + price);System.out.println("productCode = " + productCode);System.out.println("screenSize = " + screenSize);System.out.println("getMobileColor = " + getMobileColor.toString()); System.out.println("getIsp = " + getIsp.toString());System.out.println("getmainParam = " + getmainParam.toString());System.out.println("getNetJsonObject = " + getNetJsonObject.toString());System.out.println("getTransferFunction = " + getTransferFunction.toString());System.out.println("getSensor = " + getSensor.toString());System.out.println("getJsonNull = " + getJsonNull.toString());}
}

7.18. 运行JSONObjectOpt.java

8. JSONObject的discard方法

8.1. JSONObject discard(String key), 丢弃现有的key和它的值, 并返回原JSONObject。

8.2. 新建JSONObjectDiscard.java

package com.fj.jo;import net.sf.json.JSONObject;/*** JSONObject* 1. JSONObject discard(String key), 丢弃现有的key和它的值, 并返回原JSONObject。*/
public class JSONObjectDiscard {public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D) ;System.out.println(jsonObject.toString());JSONObject resultJSONObject = jsonObject.discard("support5G1"); // 丢弃support5G键和它的值。System.out.println(resultJSONObject.toString());System.out.println(jsonObject == resultJSONObject);}
}

8.3. 运行JSONObjectDiscard.java

9. JSONObject的remove方法

9.1. Object remove(String key), 删除现有的key和它的值, 并返回删除的值, 如果不存在返回null。

9.2. 新建JSONObjectRemove.java

package com.fj.jo;import net.sf.json.JSONObject;/*** JSONObject* 1. Object remove(String key), 删除现有的key和它的值, 并返回删除的值, 如果不存在返回null。*/
public class JSONObjectRemove {public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D); System.out.println(jsonObject.toString()); Object removeValue = jsonObject.remove("name"); // 删除name键和它的值System.out.println("removeValue = " + removeValue);System.out.println(jsonObject.toString());System.out.println(jsonObject.remove("cpu")); // 删除不存在的key}
}

9.3. 运行JSONObjectRemove.java

10. JSONObject的keys和values方法

10.1. Iterator keys(), 获取JSONObject的keys迭代器。

10.2. Collection values(), 获取JSONObject的values的集合。

10.3. 新建JSONObjectKeysValues.java

package com.fj.jo;import java.util.Iterator;
import net.sf.json.JSONObject;/*** JSONObject* 1. Iterator keys(), 获取JSONObject的keys迭代器。* 2. Collection values(), 获取JSONObject的values的集合。*/
public class JSONObjectKeysValues {public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D); Iterator<?> keyIterator = jsonObject.keys(); // 获取JSONObject的keys迭代器while(keyIterator.hasNext()) {System.out.println(keyIterator.next());}Iterator<?> valueIterator = jsonObject.values().iterator(); // 获取JSONObject的values的集合while(valueIterator.hasNext()) {System.out.println(valueIterator.next());}}
}

10.4. 运行JSONObjectKeysValues.java

11. JSONObject的containsKey和containsValue方法

11.1. boolean containsKey(Object key), 是否包含键。键存在返回true, 不存在返回false。

11.2. boolean containsValue(Object value), 是否包含值, 值存在返回true, 不存在返回false。json-lib底层, 会创建一个JsonConfig对象使用。

11.3. boolean containsValue(Object value, JsonConfig jsonConfig), 是否包含值, 值存在返回true, 不存在返回false。传入了一个JsonConfig对象。

11.4. 新建JSONObjectContainsKeyValue.java

package com.fj.jo;import net.sf.json.JSONObject;/*** JSONObject* 1. boolean containsKey(Object key), 是否包含键。键存在返回true, 不存在返回false。* 2. boolean containsValue(Object value), 是否包含值, 值存在返回true, 不存在返回false。json-lib底层, 会创建一个JsonConfig对象使用。* 3. boolean containsValue(Object value, JsonConfig jsonConfig), 是否包含值, 值存在返回true, 不存在返回false。传入了一个JsonConfig对象。*/
public class JSONObjectContainsKeyValue {public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") .element("support5G", true) .element("price", 5988) .element("productCode", 2601010188703L) .element("screenSize", 6.58D); System.out.println(jsonObject.containsKey("screenSize")); // 是否包含screenSize键System.out.println(jsonObject.containsValue("HUAWEI P40 Pro")); // 是否包含"HUAWEI P40 Pro"值System.out.println(jsonObject.containsValue(true)); // 是否包含true值System.out.println(jsonObject.containsValue(5988)); // 是否包含5988值System.out.println(jsonObject.containsValue(2601010188703L)); // 是否包含2601010188703L值}
}

11.5. 运行JSONObjectContainsKeyValue.java

006_JSONObject对象公共方法相关推荐

  1. 004_JSONArray对象公共方法

    1. add方法给JSONArray添加元素 1.1. boolean add(Object value), 给JSONArray添加值, 被当作Object类型添加.json-lib底层, 会创建一 ...

  2. ts 数组转换对象 对象转换数组的公共方法

    1.封装 在项目的utils=>index.ts文件内写方法 // 封装数组转换对象 对象转换数组的公共方法 type=1是 数组(例[1,2,3]) ==>对象数组(例[{vaue:1} ...

  3. GridView 类型公开的所有成员(公共属性、公共方法、私有属性.......)

    下表列出了由 GridView 类型公开的成员. 公共构造函数   名称 说明 GridView 初始化 GridView 类的新实例. 页首 公共属性 (请参见 受保护的属性 )   名称 说明 A ...

  4. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

  5. 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )

    文章目录 I . 单例的懒汉式与恶汉式 II . Java 中的懒汉式与恶汉式 III . Kotlin 中对应 Java 的懒汉式与恶汉式 IV . Kotlin 对象 ( object ) 声明 ...

  6. 【JavaScript】JS的变量、数组、计算器案例、函数、类、常用对象的方法

    目录 01-js-js的声明和引入 <!DOCTYPE html> <html><head><meta charset="UTF-8"&g ...

  7. Python中高级变量类型(列表,元组,字典,字符串,公共方法...)

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  8. Angularjs调用公共方法与共享数据

    这个问题场景是在使用ionic开发页面的过程中发现,多个页面对应的多个controller如何去调用公共方法,比如给ionic引入了toast插件,如何将这个插件的调用变成公共方法或者设置成工具类,因 ...

  9. java分布式对象——远程方法中的参数和返回值+远程对象激活

    [0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...

最新文章

  1. 快速排序(快排)--->注释超详细
  2. 【ACM】杭电OJ 2034
  3. php编写一个学生类_PHP实现简单的学生信息管理系统(web版)
  4. YYH的苍天大竹(NOIP模拟赛Round 6)
  5. Vue.js(一) Vue.js + element-ui 扫盲
  6. 简单三步搭建一对一直播源码系统
  7. angularjs中state的参数4_mpvue中使用Vuex
  8. 19.C++-(=)赋值操作符、初步编写智能指针
  9. iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例
  10. 抖音城市美食算数报告
  11. 读取文件卡顿_奥睿科IV300固态硬盘评测:35克,读取超900M/s?
  12. JAVA异常使用_每个人都曾用过、但未必都用得好
  13. ASP.NET在类中引用Application和Server.MapPath
  14. 谷歌助手现可预测航班延误情况并推送建议
  15. 关于最优化问题的个人理解以及黑塞矩阵的示例
  16. 2000坐标系xy坐标几位_2000国家大地坐标系简介
  17. 程序猿的中秋节——浪漫至死不渝!!
  18. 阿里双十一 11 年:购物狂欢背后的技术演进
  19. 管理计算机找不到应用程序,Win7计算机管理提示找不到文件或没有关联的程序问题解决方法...
  20. Subset sum problem

热门文章

  1. 目前的计算机还没有实现真正的智能
  2. C++基础学习笔记001
  3. 搜索引擎solr和elasticsearch
  4. Vue前端-Flask后台跨域访问问题的处理
  5. yii2 设置的缓存无效,返回false,不存在
  6. IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
  7. OSI协议和TCP/IP协议笔记
  8. PHP 5.5.38 + mysql 5.0.11 + zabbix3.0 + nginx 安装
  9. 团队作业9--beta版本测试报告及发布说明
  10. iOS获取UIView上某点的颜色值