javascript
006_JSONObject对象公共方法
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对象公共方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 005_JSONArray对象静态方法
- 下一篇: 008_JsonConfig对象