日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

006_JSONObject对象公共方法

發(fā)布時(shí)間:2025/4/17 197 豆豆
生活随笔 收集整理的這篇文章主要介紹了 006_JSONObject对象公共方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. accumulate系列方法給JSONObject累積值

1.1. accumulate累積值, 并返回JSONObject

1.1.1. JSONObject accumulate(String key, boolean value), 累積boolean類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.1.2. JSONObject accumulate(String key, int value), 累積int類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.1.3. JSONObject accumulate(String key, long value), 累積long類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.1.4. JSONObject accumulate(String key, double value), 累積double類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.1.5. JSONObject accumulate(String key, Object value), 累積Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.1.6. JSONObject accumulate(String key, Object value, JsonConfig jsonConfig), 累積Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。

1.2. accumulateAll累積Map值

1.2.1. void accumulateAll(Map map), 累積Map類型的值, 把Map中的鍵值一個(gè)一個(gè)地添加到JSONObject里。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

1.2.2. void accumulateAll(Map map, JsonConfig jsonConfig), 累積Map類型的值, 把Map中的鍵值一個(gè)一個(gè)地添加到JSONObject里。傳入了一個(gè)JsonConfig對(duì)象。

1.3. accumulate和accumulateAll總結(jié)

1.3.1. 鍵為String類型。累積Map值時(shí), Map對(duì)象的key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。

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

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

1.3.4. 鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)Null Key異常。

1.3.5. 累積相同鍵, 把值合并為數(shù)組, 這就是累積值的含義吧。

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

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

1.3.8. 累積空對(duì)象變量、空對(duì)象常量、JSONNull和"null", 效果是一樣的, 存放的都是"null"字符串。

1.3.9. 事實(shí)上都是調(diào)用Java底層的 Object java.util.Map.put(Object key, Object value)方法來存放值的。

1.4. 例子

1.4.1. 新建一個(gè)名為JSONObject的Java項(xiàng)目, 同時(shí)添加相關(guān)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底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 2. JSONObject accumulate(String key, int value), 累積int類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 3. JSONObject accumulate(String key, long value), 累積long類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 4. JSONObject accumulate(String key, double value), 累積double類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 5. JSONObject accumulate(String key, Object value), 累積Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 6. JSONObject accumulate(String key, Object value, JsonConfig jsonConfig), 累積Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。* 7. void accumulateAll(Map map), 累積Map類型的值, 把Map中的鍵值一個(gè)一個(gè)地添加到JSONObject里。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 8. void accumulateAll(Map map, JsonConfig jsonConfig), 累積Map類型的值, 把Map中的鍵值一個(gè)一個(gè)地添加到JSONObject里。傳入了一個(gè)JsonConfig對(duì)象。* 9. 鍵為String類型。累積Map值時(shí), Map對(duì)象的key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。* 10. 鍵可以是""空字符串。* 11. 鍵可以是"null"字符串。* 12. 鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)Null Key異常。* 13. 累積相同鍵, 把值合并為數(shù)組, 這就是累積值的含義吧。* 14. 值可以是""空字符串。* 15. 值可以是"null"字符串。* 16. 累積空對(duì)象變量、空對(duì)象常量、JSONNull和"null", 效果是一樣的, 存放的都是"null"字符串。* 17. 事實(shí)上都是調(diào)用Java底層的 Object java.util.Map.put(Object key, Object value)方法來存放值的。*/ public class JSONObjectAccumulate {public static void main(String[] args) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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, "姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject().accumulate("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)").accumulate("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD").accumulate("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)").accumulate("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通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對(duì)象變量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro") // 累積String類型的值, 被當(dāng)作Object類型來累積, 存放的是String類型的值.accumulate("support5G", true) // 累積boolean類型的值.accumulate("price", 5988) // 累積int類型的值.accumulate("productCode", 2601010188703L) // 累積long類型的值.accumulate("screenSize", 6.58D) // 累積double類型的值.accumulate("mobileColor", mobileColor) // 累積數(shù)組類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONArray類型的值.accumulate("isp", isp) // 累積集合類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONArray類型的值.accumulate("mainParam", mainParam) // 累積Map類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONObject類型的值.accumulate("sensor", sensor) // 累積JavaBean對(duì)象類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONObject類型的值.accumulate("netJsonObject", netJsonObject) // 累積JSONObject類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONObject類型的值.accumulate("transferFunction", transferFunction) // 累積JSONArray類型的值, 被當(dāng)作Object類型來累積, 存放的是JSONArray類型的值.accumulate("price", 2988) // 累積相同鍵, 把值合并為數(shù)組.accumulate("", "鍵可以是空字符串") // 鍵可以是""空字符串.accumulate("null", "鍵可以是null字符串") // 鍵可以是"null"字符串.accumulate("empty", "") // 值可以是""空字符串.accumulate("jsonNull", jsonNull) // 累積JSONNull類型的值, 被當(dāng)作Object類型來累積, 存放的是"null"字符串.accumulate("nullObjectConst", null) // 累積空對(duì)象常量, 存放的是"null"字符串.accumulate("nullObjectVar", nullObjectVar) // 累積空對(duì)象變量, 存放的是"null"字符串.accumulate("nullStr", "null", new JsonConfig()) // 值可以是"null"字符串.accumulateAll(objKeyMap); // 累積Map類型的值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。 jsonObject.accumulateAll(mainParam, new JsonConfig());System.out.println(jsonObject.toString());} }

1.4.4. 運(yùn)行JSONObjectAccumulate.java

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

2.1. element和elementOpt方法

2.1.1. JSONObject element(String key, boolean value), 存放boolean類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.2. JSONObject element(String key, int value), 存放int類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.3. JSONObject element(String key, long value), 存放long類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.4. JSONObject element(String key, double value), 存放double類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.5. JSONObject element(String key, Collection value), 存放Collection類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.6. JSONObject element(String key, Collection value, JsonConfig jsonConfig), 存放Collection類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。

2.1.7. JSONObject element(String key, Map value), 存放Map類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.8. JSONObject element(String key, Map value, JsonConfig jsonConfig), 存放Map類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。

2.1.9. JSONObject element(String key, Object value), 存放Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.10. JSONObject element(String key, Object value, JsonConfig jsonConfig), 存放Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。

2.1.11. JSONObject elementOpt(String key, Object value), 存放Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

2.1.12. JSONObject elementOpt(String key, Object value, JsonConfig jsonConfig), 存放Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。

2.2. element和elementOpt總結(jié)

2.2.1. 鍵為String類型。

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

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

2.2.4. element方法鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)Null Key異常。

2.2.5. elementOpt方法鍵可以為null對(duì)象, 丟棄。

2.2.6. 相同鍵, 后者替換前者。

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

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

2.2.9. element方法, 值可以存放空對(duì)象變量, 如果是新key, 什么也不操作, 相當(dāng)于自動(dòng)丟棄。如果有key, 刪除原來的key和值。?值存放空對(duì)象常量, 語法錯(cuò)誤。

2.2.10. elementOpt方法, 值可以存放空對(duì)象變量/空對(duì)象常量, 但是會(huì)自動(dòng)丟棄。如果有key, 不刪除原來的key和值。

2.2.11. 事實(shí)上都是調(diào)用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底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 2. JSONObject element(String key, int value), 存放int類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 3. JSONObject element(String key, long value), 存放long類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 4. JSONObject element(String key, double value), 存放double類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 5. JSONObject element(String key, Collection value), 存放Collection類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 6. JSONObject element(String key, Collection value, JsonConfig jsonConfig), 存放Collection類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。* 7. JSONObject element(String key, Map value), 存放Map類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 8. JSONObject element(String key, Map value, JsonConfig jsonConfig), 存放Map類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。* 9. JSONObject element(String key, Object value), 存放Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 10. JSONObject element(String key, Object value, JsonConfig jsonConfig), 存放Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。* 11. JSONObject elementOpt(String key, Object value), 存放Object類型的值, 并返回JSONObject。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 12. JSONObject elementOpt(String key, Object value, JsonConfig jsonConfig), 存放Object類型的值, 并返回JSONObject。傳入了一個(gè)JsonConfig對(duì)象。* 13. 鍵為String類型。* 14. 鍵可以是""空字符串。* 15. 鍵可以是"null"字符串。* 16. element方法鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)Null Key異常。* 17. elementOpt方法鍵可以為null對(duì)象, 丟棄。 * 18. 相同鍵, 后者替換前者。* 19. 值可以是""空字符串。* 20. 值可以是"null"字符串, 效果和存放JSONNull類型一樣。* 21. element方法, 值可以存放空對(duì)象變量, 如果是新key, 什么也不操作, 相當(dāng)于自動(dòng)丟棄。如果有key, 刪除原來的key和值。 值存放空對(duì)象常量, 語法錯(cuò)誤。* 22. elementOpt方法, 值可以存放空對(duì)象變量/空對(duì)象常量, 但是會(huì)自動(dòng)丟棄。如果有key, 不刪除原來的key和值。* 23. 事實(shí)上都是調(diào)用Java底層的 Object java.util.Map.put(Object key, Object value)方法來存放值的。*/ public class JSONObjectElement {public static void main(String[] args) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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, "姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)").element("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)").element("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X)");// JSONArrayJSONArray transferFunction = new JSONArray();transferFunction.element("NFC").element("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null對(duì)象變量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.element("name", "HUAWEI P40 Pro") // 存放String類型的值, 被當(dāng)作Object類型來存放, 存放的是String類型的值.element("support5G", true) // 存放boolean類型的值.element("price", 5988) // 存放int類型的值.element("productCode", 2601010188703L) // 存放long類型的值.element("screenSize", 6.58D) // 存放double類型的值.element("mobileColor", mobileColor) // 存放數(shù)組類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONArray類型的值.element("isp", isp) // 存放集合類型的值, 被當(dāng)作Collection類型來存放, 存放的是JSONArray類型的值.element("mainParam", mainParam) // 存放Map類型的值, 存放的是JSONObject類型的值.element("sensor", sensor) // 存放JavaBean對(duì)象類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONObject類型的值.element("netJsonObject", netJsonObject) // 存放JSONObject類型的值, 被當(dāng)作 Map類型來存放, 存放的是JSONObject類型的值.element("transferFunction", transferFunction) // 存放JSONArray類型的值, 被當(dāng)作Collect類型來存放, 存放的是JSONArray類型的值.element("price", 2988) // 存放相同鍵值, 新值替換舊值.element("", "鍵可以是空字符串") // 鍵可以是""空字符串.element("null", "鍵可以是null字符串") // 鍵可以是"null"字符串.element("empty", "") // 值可以是""空字符串.element("element_jsonNull", jsonNull) // 使用element方法, 存放JSONNull類型的值, 被當(dāng)作Object類型來存放, 存放的是"null"字符串.element("element_nullObjectVar", nullObjectVar) // element方法, 值可以存放空對(duì)象變量, 如果是新key, 什么也不操作, 相當(dāng)于自動(dòng)丟棄。如果有key, 刪除原來的key和值 // .element("element_nullObjectConst", null) // element方法, 值存放空對(duì)象常量, 語法錯(cuò)誤.element("element_nullStr", "null") // 值可以是"null"字符串.elementOpt("elementOpt_jsonNull", jsonNull) // elementOpt方法, 存放JSONNull類型的值, 被當(dāng)作Object類型來存放, 存放的是"null"字符串.elementOpt("elementOpt_nullObjectVar", nullObjectVar) // elementOpt方法, 存放空對(duì)象變量, 會(huì)自動(dòng)丟棄。如果有key, 不刪除原來的key和值.elementOpt("elementOpt_nullObjectConst", null) // elementOpt方法, 存放空對(duì)象常量, 會(huì)自動(dòng)丟棄。如果有key, 不刪除原來的key和值.elementOpt("elementOpt_nullStr", "null"); // elementOpt方法, 值可以是"null"字符串System.out.println(jsonObject.toString());} }

2.3.2. 運(yùn)行JSONObjectAccumulate.java

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

3.1. put和putAll方法

3.1.1. Object put(Object key, Object value), 存放值, 并返回先前值, 如果先前有key返回先前值, 如果沒有返回null。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

3.1.2. void putAll(Map map), 存放Map值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

3.1.3. void putAll(Map map, JsonConfig jsonConfig),存放Map值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。傳入了一個(gè)JsonConfig對(duì)象。

3.2. put和putAll方法總結(jié)

3.2.1. put存放值, 把鍵和值都當(dāng)作Object類型。

3.2.2. 鍵為String類型。key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。

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

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

3.2.5. 鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)key is null異常。

3.2.6. 相同鍵, 后者替換前者。如果先前有key返回先前值, 如果沒有返回null。

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

3.2.8. 值可以存放空對(duì)象變量/常量, 但是會(huì)自動(dòng)丟棄。并刪除先前的鍵和值。

3.2.9. 事實(shí)上都是調(diào)用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底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 2. void putAll(Map map), 存放Map值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 3. void putAll(Map map, JsonConfig jsonConfig),存放Map值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。傳入了一個(gè)JsonConfig對(duì)象。* 4. put存放值, 把鍵和值都當(dāng)作Object類型。* 5. 鍵為String類型。key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。* 6. 鍵可以是""空字符串。* 7. 鍵可以是"null"字符串。* 8. 鍵不能為null對(duì)象。編寫代碼的時(shí)候, 可以把null對(duì)象作為鍵, 沒有語法錯(cuò)誤,但是運(yùn)行時(shí)會(huì)報(bào)key is null異常。* 9. 相同鍵, 后者替換前者。如果先前有key返回先前值, 如果沒有返回null。* 10. 值可以是"null"字符串, 效果和存放JSONNull類型一樣。* 11. 值可以存放空對(duì)象變量/常量, 但是會(huì)自動(dòng)丟棄。并刪除先前的鍵和值。* 12. 事實(shí)上都是調(diào)用Java底層的 Object java.util.Map.put(Object key, Object value)方法來存放值的。*/ public class JSONObjectPut {public static void main(String[] args) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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("姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject();netJsonObject.put("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)");netJsonObject.put("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD");netJsonObject.put("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)");netJsonObject.put("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通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對(duì)象變量Object nullObjectVar = null;JSONObject jsonObject = new JSONObject();jsonObject.put("name", "HUAWEI P40 Pro"); // 存放String類型的值, 被當(dāng)作Object類型來存放, 存放的是String類型的值jsonObject.put("support5G", true); // 存放boolean類型的值, 被當(dāng)作Object類型來存放, 存放的是boolean類型的值jsonObject.put("price", 5988); // 存放int類型的值, 被當(dāng)作Object類型來存放, 存放的是int類型的值jsonObject.put("productCode", 2601010188703L); // 存放long類型的值, 被當(dāng)作Object類型來存放, 存放的是long類型的值jsonObject.put("screenSize", 6.58D); // 存放double類型的值, 被當(dāng)作Object類型來存放, 存放的是double類型的值jsonObject.put("mobileColor", mobileColor); // 存放數(shù)組類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONArray類型的值jsonObject.put("isp", isp); // 存放集合類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONArray類型的值jsonObject.put("mainParam", mainParam);// 存放Map類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONObject類型的值jsonObject.put("sensor", sensor); // 存放JavaBean對(duì)象類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONObject類型的值jsonObject.put("netJsonObject", netJsonObject); // 存放JSONObject類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONObject類型的值jsonObject.put("transferFunction", transferFunction); // 存放JSONArray類型的值, 被當(dāng)作Object類型來存放, 存放的是JSONArray類型的值jsonObject.put("price", 2988); // 存放相同鍵值, 新值替換舊值jsonObject.put("", "鍵可以是空字符串"); // 鍵可以是""空字符串jsonObject.put("null", "鍵可以是null字符串"); // 鍵可以是"null"字符串jsonObject.put("empty", ""); // 值可以是""空字符串jsonObject.put("jsonNull", jsonNull); // 存放JSONNull類型的值, 被當(dāng)作Object類型來存放, 存放的是"null"字符串jsonObject.put("nullObjectVar", nullObjectVar); // 存放空對(duì)象變量, 被丟棄。如果之前有這個(gè)key, 刪除先前的鍵和值。 jsonObject.put("nullObjectConst", null); // 存放空對(duì)象常量, 被丟棄 。如果之前有這個(gè)key, 刪除先前的鍵和值。jsonObject.put("nullStr", "null"); // 值可以是"null"字符串jsonObject.putAll(objKeyMap); // 存放Map類型的值, 可以把Map的值一個(gè)一個(gè)地添加到JSONObject對(duì)象。 jsonObject.putAll(mainParam, new JsonConfig());System.out.println(jsonObject.toString());} }

3.3.2. 運(yùn)行JSONObjectPut.java

4. accumulate、element、put給JSONObject添加值對(duì)比

4.1. accumulate給JSONObject累積值

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

4.1.2. 鍵為String類型。累積Map值時(shí), Map對(duì)象的key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。

4.1.3. 累積相同鍵, 把值合并為數(shù)組。

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存放值, 把鍵和值都當(dāng)作Object類型。

4.3.2. 鍵為String類型。key不是String類型的話, 會(huì)被轉(zhuǎn)為String類型。

4.3.3. 相同鍵, 后者替換前者。如果先前有key返回先前值, 如果沒有返回null。

4.4. element的優(yōu)勢(shì)

4.4.1. 事實(shí)上, 鍵只能是String類型。少類型轉(zhuǎn)換。

4.4.2. 事實(shí)上, 值可以是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) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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("姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)").element("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)").element("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通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. 運(yùn)行JSONObjectHas.java

6. JSONObject的get方法

6.1. String getString(String key), 獲得鍵相關(guān)聯(lián)的String類型的值。

6.2. boolean getBoolean(String key), 獲得鍵相關(guān)聯(lián)的boolean類型的值。

6.3. int getInt(String key), 獲得鍵相關(guān)聯(lián)的int類型的值。

6.4. long getLong(String key), 獲得鍵相關(guān)聯(lián)的long類型的值。可以接收int類型的值。

6.5. double getDouble(String key), 獲得鍵相關(guān)聯(lián)的double類型的值。

6.6. JSONArray getJSONArray(String key), 獲得鍵相關(guān)聯(lián)的JSONArray類型的值。

6.7. JSONObject getJSONObject(String key), 獲得鍵相關(guān)聯(lián)的JSONObject類型的值。

6.8. Object get(String key), 獲得鍵相關(guān)聯(lián)的Object類型的值。只要鍵存在, 可以接收任何類型的值。

6.9. 試圖獲取一個(gè)不存在的key, 發(fā)生錯(cuò)誤。

6.10. 如果類型不匹配不會(huì)報(bào)錯(cuò), 返回該類型的默認(rèn)值。

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), 獲得鍵相關(guān)聯(lián)的String類型的值。* 2. boolean getBoolean(String key), 獲得鍵相關(guān)聯(lián)的boolean類型的值。* 3. int getInt(String key), 獲得鍵相關(guān)聯(lián)的int類型的值。* 4. long getLong(String key), 獲得鍵相關(guān)聯(lián)的long類型的值。可以接收int類型的值。* 5. double getDouble(String key), 獲得鍵相關(guān)聯(lián)的double類型的值。* 6. JSONArray getJSONArray(String key), 獲得鍵相關(guān)聯(lián)的JSONArray類型的值。* 7. JSONObject getJSONObject(String key), 獲得鍵相關(guān)聯(lián)的JSONObject類型的值。* 8. Object get(String key), 獲得鍵相關(guān)聯(lián)的Object類型的值。只要鍵存在, 可以接收任何類型的值。* 9. 試圖獲取一個(gè)不存在的key, 發(fā)生錯(cuò)誤。* 10. 如果類型不匹配不會(huì)報(bào)錯(cuò), 返回該類型的默認(rèn)值。*/ public class JSONObjectGet {public static void main(String[] args) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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("姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)").element("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)").element("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通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"); // 獲取鍵相關(guān)聯(lián)的String值boolean support5G = jsonObject.getBoolean("support5G"); // 獲取鍵相關(guān)聯(lián)的boolean值int price = jsonObject.getInt("price"); // 獲取鍵相關(guān)聯(lián)的int值long productCode = jsonObject.getLong("productCode"); // 獲取鍵相關(guān)聯(lián)的long值double screenSize = jsonObject.getDouble("screenSize"); // 獲取鍵相關(guān)聯(lián)的double值// 獲取鍵相關(guān)聯(lián)的JSONArray值。我們存放的數(shù)組類型值, 被當(dāng)作JSONArray類型來存放, 所以用getJSONArray來獲取。JSONArray getMobileColor = jsonObject.getJSONArray("mobileColor"); // 獲取鍵相關(guān)聯(lián)的JSONArray值。我們存放的集合類型值, 被當(dāng)作JSONArray類型來存放, 所以用getJSONArray來獲取。JSONArray getIsp = jsonObject.getJSONArray("isp"); // 獲取鍵相關(guān)聯(lián)的JSONObject值。我們存放的Map類型值, 被當(dāng)作JSONObject類型來存放, 所以用getJSONObject來獲取。JSONObject getmainParam = jsonObject.getJSONObject("mainParam"); JSONObject getNetJsonObject = jsonObject.getJSONObject("netJsonObject"); // 獲取鍵相關(guān)聯(lián)的JSONObject值JSONArray getTransferFunction = jsonObject.getJSONArray("transferFunction"); // 獲取鍵相關(guān)聯(lián)的JSONArray值Object getSensor = jsonObject.get("sensor"); // 獲取鍵相關(guān)聯(lián)的Object值Object getJsonNull = jsonObject.get("jsonNull"); // 獲取鍵相關(guān)聯(lián)的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. 運(yùn)行JSONObjectGet.java

7. JSONObject的opt方法

7.1. String optString(String key), 獲得鍵相關(guān)聯(lián)的String類型的值。

7.2. boolean optBoolean(String key), 獲得鍵相關(guān)聯(lián)的boolean類型的值。

7.3. int optInt(String key), 獲得鍵相關(guān)聯(lián)的int類型的值。

7.4. long optLong(String key), 獲得鍵相關(guān)聯(lián)的long類型的值。可以接收int類型的值。

7.5. double optDouble(String key), 獲得鍵相關(guān)聯(lián)的double類型的值。

7.6. JSONArray optJSONArray(String key), 獲得鍵相關(guān)聯(lián)的JSONArray類型的值。

7.7. JSONObject optJSONObject(String key), 獲得鍵相關(guān)聯(lián)的JSONObject類型的值。

7.8. Object opt(String key), 獲得鍵相關(guān)聯(lián)的Object類型的值。只要鍵存在, 可以接收任何類型的值。

7.9. String optString(String key, String defaultValue), 獲得鍵相關(guān)聯(lián)的String類型的值, 可以指定一個(gè)String類型的默認(rèn)值。

7.10. boolean optBoolean(String key, boolean defaultValue), 獲得鍵相關(guān)聯(lián)的boolean類型的值, 可以指定一個(gè)boolean類型的默認(rèn)值。

7.11. int optInt(String key, int defaultValue), 獲得鍵相關(guān)聯(lián)的int類型的值, 可以指定一個(gè)int類型的默認(rèn)值。

7.12. long optLong(String key, long defaultValue), 獲得鍵相關(guān)聯(lián)的long類型的值, 可以指定一個(gè)long類型的默認(rèn)值。可以接收int類型的值。

7.13. double optDouble(String key, double defaultValue), 獲得鍵相關(guān)聯(lián)的double類型的值, 可以指定一個(gè)double類型的默認(rèn)值。

7.14. 試圖獲取一個(gè)不存在的key, 返回該類型的默認(rèn)值或者使用默認(rèn)值(相比get獲取值更實(shí)用)。

7.15. 可以給String、int、boolean、double、long類型指定默認(rèn)值(這是相比get獲取值的唯一好處)。

7.16. 假如試圖獲取一個(gè)不存在的JSONObject、JSONArray、Object類型的值, 會(huì)返回空對(duì)象, 容易發(fā)生空指針異常。這個(gè)時(shí)候我們可以結(jié)合has判斷鍵不存在的時(shí)候, 指定默認(rèn)值, 防止發(fā)生空指針異常。opt指定默認(rèn)值+has判斷指定默認(rèn)值, 這種方式更實(shí)用。

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), 獲得鍵相關(guān)聯(lián)的String類型的值。* 2. boolean optBoolean(String key), 獲得鍵相關(guān)聯(lián)的boolean類型的值。* 3. int optInt(String key), 獲得鍵相關(guān)聯(lián)的int類型的值。* 4. long optLong(String key), 獲得鍵相關(guān)聯(lián)的long類型的值。可以接收int類型的值。* 5. double optDouble(String key), 獲得鍵相關(guān)聯(lián)的double類型的值。* 6. JSONArray optJSONArray(String key), 獲得鍵相關(guān)聯(lián)的JSONArray類型的值。* 7. JSONObject optJSONObject(String key), 獲得鍵相關(guān)聯(lián)的JSONObject類型的值。* 8. Object opt(String key), 獲得鍵相關(guān)聯(lián)的Object類型的值。只要鍵存在, 可以接收任何類型的值。* 9. String optString(String key, String defaultValue), 獲得鍵相關(guān)聯(lián)的String類型的值, 可以指定一個(gè)String類型的默認(rèn)值。* 10. boolean optBoolean(String key, boolean defaultValue), 獲得鍵相關(guān)聯(lián)的boolean類型的值, 可以指定一個(gè)boolean類型的默認(rèn)值。* 11. int optInt(String key, int defaultValue), 獲得鍵相關(guān)聯(lián)的int類型的值, 可以指定一個(gè)int類型的默認(rèn)值。* 12. long optLong(String key, long defaultValue), 獲得鍵相關(guān)聯(lián)的long類型的值, 可以指定一個(gè)long類型的默認(rèn)值。可以接收int類型的值。* 13. double optDouble(String key, double defaultValue), 獲得鍵相關(guān)聯(lián)的double類型的值, 可以指定一個(gè)double類型的默認(rèn)值。* 14. 試圖獲取一個(gè)不存在的key, 返回該類型的默認(rèn)值或者使用默認(rèn)值(相比get獲取值更實(shí)用)。* 15. 可以給String、int、boolean、double、long類型指定默認(rèn)值(這是相比get獲取值的唯一好處)。* 16. 假如試圖獲取一個(gè)不存在的JSONObject、JSONArray、Object類型的值, 會(huì)返回空對(duì)象, 容易發(fā)生空指針異常。這個(gè)時(shí)候我們可以結(jié)合has判斷鍵不存在的時(shí)候, 指定默認(rèn)值, 防止發(fā)生空指針異常。* opt指定默認(rèn)值+has判斷指定默認(rèn)值, 這種方式更實(shí)用。*/ public class JSONObjectOpt {public static void main(String[] args) {// 數(shù)組String[] mobileColor = {"亮黑色", "冰霜銀", "零度白", "深海藍(lán)", "晨曦金"};// 集合List<String> isp = new ArrayList<String>(); // ISP網(wǎng)絡(luò)服務(wù)提供商isp.add("移動(dòng)");isp.add("聯(lián)通");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("姿態(tài)感應(yīng)器、色溫傳感器");// JSONObjectJSONObject netJsonObject = new JSONObject().element("5G", "移動(dòng)5G(NR)/聯(lián)通5G(NR)/電信5G(NR)").element("4G", "移動(dòng)/聯(lián)通/電信4G主副卡 支持 TD-LTE/LTE FDD").element("3G", "主卡: 聯(lián)通3G(WCDMA)/電信3G(CDMA 2000); 副卡: 聯(lián)通3G(WCDMA)").element("2G", "主卡: 移動(dòng)2G(GSM)/聯(lián)通2G(GSM)/電信2G(CDMA 1X); 副卡: 移動(dòng)2G(GSM)/聯(lián)通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", ""); // 獲取鍵相關(guān)聯(lián)的String值, 并指定""空字符串為默認(rèn)值boolean support5G = jsonObject.optBoolean("support5G", false); // 獲取鍵相關(guān)聯(lián)的boolean值, 并指定false為默認(rèn)值int price = jsonObject.optInt("price", 0); // 獲取鍵相關(guān)聯(lián)的int值, 并指定0為默認(rèn)值long productCode = jsonObject.optLong("productCode", 0L); // 獲取鍵相關(guān)聯(lián)的long值, 并指定0L為默認(rèn)值double screenSize = jsonObject.optDouble("screenSize", 0.0D); // 獲取鍵相關(guān)聯(lián)的double值, 并指定0.0D為默認(rèn)值// 獲取鍵相關(guān)聯(lián)的JSONArray值。我們存放的數(shù)組類型值, 被當(dāng)作JSONArray類型來存放, 所以用optJSONArray來獲取。JSONArray getMobileColor = jsonObject.optJSONArray("mobileColor"); // 獲取鍵相關(guān)聯(lián)的JSONArray值。我們存放的集合類型值, 被當(dāng)作JSONArray類型來存放, 所以用optJSONArray來獲取。JSONArray getIsp = jsonObject.optJSONArray("isp"); // 獲取鍵相關(guān)聯(lián)的JSONObject值。我們存放的Map類型值, 被當(dāng)作JSONObject類型來存放, 所以用optJSONObject來獲取。JSONObject getmainParam = jsonObject.optJSONObject("mainParam"); JSONObject getNetJsonObject = jsonObject.optJSONObject("netJsonObject"); // 獲取鍵相關(guān)聯(lián)的JSONObject值JSONArray getTransferFunction = jsonObject.optJSONArray("transferFunction"); // 獲取鍵相關(guān)聯(lián)的JSONArray值Object getSensor = jsonObject.opt("sensor"); // 獲取鍵相關(guān)聯(lián)的Object值Object getJsonNull = jsonObject.opt("jsonNull"); // 獲取鍵相關(guān)聯(lián)的Object值// 通過has判斷鍵不存在的時(shí)候, 給對(duì)象類型指定一個(gè)默認(rèn)值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. 運(yùn)行JSONObjectOpt.java

8. JSONObject的discard方法

8.1. JSONObject discard(String key), 丟棄現(xiàn)有的key和它的值, 并返回原JSONObject。

8.2. 新建JSONObjectDiscard.java

package com.fj.jo;import net.sf.json.JSONObject;/*** JSONObject* 1. JSONObject discard(String key), 丟棄現(xiàn)有的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. 運(yùn)行JSONObjectDiscard.java

9. JSONObject的remove方法

9.1. Object remove(String key), 刪除現(xiàn)有的key和它的值, 并返回刪除的值, 如果不存在返回null。

9.2. 新建JSONObjectRemove.java

package com.fj.jo;import net.sf.json.JSONObject;/*** JSONObject* 1. Object remove(String key), 刪除現(xiàn)有的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. 運(yùn)行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. 運(yùn)行JSONObjectKeysValues.java

11. JSONObject的containsKey和containsValue方法

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

11.2. boolean containsValue(Object value), 是否包含值, 值存在返回true, 不存在返回false。json-lib底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。

11.3. boolean containsValue(Object value, JsonConfig jsonConfig), 是否包含值, 值存在返回true, 不存在返回false。傳入了一個(gè)JsonConfig對(duì)象。

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底層, 會(huì)創(chuàng)建一個(gè)JsonConfig對(duì)象使用。* 3. boolean containsValue(Object value, JsonConfig jsonConfig), 是否包含值, 值存在返回true, 不存在返回false。傳入了一個(gè)JsonConfig對(duì)象。*/ 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. 運(yùn)行JSONObjectContainsKeyValue.java

總結(jié)

以上是生活随笔為你收集整理的006_JSONObject对象公共方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

99久久精品无免国产免费 | 国产高清在线观看av | 狠狠综合网 | 亚洲成人资源在线观看 | 亚洲免费在线播放视频 | 精品美女视频 | 黄色影院在线免费观看 | 91爱爱电影 | 国产美女精品在线 | 亚洲一区二区三区91 | 91精品秘密在线观看 | 最近最新中文字幕 | 亚洲干视频在线观看 | 久久综合九色综合欧美就去吻 | 国产精品免费视频观看 | 黄色在线观看www | 国产丝袜在线 | 6080yy午夜一二三区久久 | 麻豆精品视频 | 色吊丝在线永久观看最新版本 | 色噜噜色噜噜 | 久久视频一区 | 中文字幕日韩国产 | 中文字幕在线影院 | 99爱精品视频| 亚洲成av人影院 | 亚洲美女精品区人人人人 | 色亚洲激情 | 黄色一集片 | 成人av久久 | 青春草免费在线视频 | 一区二区三区在线观看 | 中文字幕在线观看免费 | 日日夜夜中文字幕 | 久久婷亚洲五月一区天天躁 | 欧美一区二区三区免费看 | www.伊人色.com | 97精品国产97久久久久久粉红 | 欧美色图另类 | 成人夜晚看av| 国产精品久久一区二区三区, | 国产麻豆传媒 | 日韩在线激情 | 精品人人爽 | 超碰在线观看99 | 日韩精品在线视频免费观看 | 精品视频久久久久久 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产精品手机在线播放 | www.色就是色 | www久久久 | 中文字幕首页 | 91人人揉日日捏人人看 | 日韩精选在线 | 最新中文字幕 | 国产精品99久久久精品 | 91在线日韩 | 久久视频在线观看中文字幕 | 国内视频一区二区 | 久草资源在线观看 | 国产精品福利在线观看 | 亚洲国产欧美在线人成大黄瓜 | 蜜桃av综合网 | 免费看黄色毛片 | 日韩不卡高清 | 亚洲欧美婷婷六月色综合 | av在线免费在线观看 | 久久久香蕉视频 | 久精品在线 | 亚洲理论电影 | 久久精品久久99精品久久 | 国产精品系列在线观看 | 97在线公开视频 | 日本性视频 | 欧美日韩视频免费看 | av国产在线观看 | 久久九九影院 | 999久久久国产精品 高清av免费观看 | 91麻豆精品国产自产在线游戏 | 在线导航av | 一本之道乱码区 | 视频二区在线视频 | 国产精品成人aaaaa网站 | 亚洲欧洲一级 | 色综合久久五月天 | 2023亚洲精品国偷拍自产在线 | 亚洲视频在线视频 | 97超碰在线久草超碰在线观看 | 久久免费一 | 日日添夜夜添 | 天天操伊人 | 天天天天爱天天躁 | 91九色国产在线 | a√天堂资源 | 国产精品一区二区果冻传媒 | 伊人伊成久久人综合网小说 | 日韩中文字幕视频在线 | 国产高清免费在线播放 | 久久这里只有精品1 | 亚洲一区精品人人爽人人躁 | 98精品国产自产在线观看 | 免费网站在线观看成人 | 中文字幕日本在线 | 婷婷丁香激情网 | 999ZYZ玖玖资源站永久 | 在线影院中文字幕 | 九九免费在线观看 | 一区二区三区免费在线观看 | 欧洲亚洲国产视频 | 91看片在线看片 | 久久久免费少妇 | 亚洲三级影院 | 久久一区二区免费视频 | 国产一区二区成人 | 亚洲欧洲国产精品 | 欧美另类交在线观看 | 日韩视频免费播放 | 久章操| 激情婷婷在线观看 | 99精品国产一区二区三区麻豆 | 久草a在线 | 福利视频导航网址 | 成人动漫一区二区三区 | av黄在线播放 | 国产成人一区二区三区 | 国产精品久久久久久妇 | 中文字幕免费高 | 欧美日韩性视频在线 | 国产97免费| 蜜臀aⅴ精品一区二区三区 久久视屏网 | 欧美日韩视频观看 | 国产一级电影网 | 亚洲经典视频 | 91高清一区 | 91成人免费看片 | 超碰九九| 黄色成人影院 | 成人在线观看免费视频 | 美女视频久久 | 欧美精品久久久久久久 | 日韩在线视频一区二区三区 | 日日爽天天操 | 操操操天天操 | 超碰97.com| 久久96国产精品久久99漫画 | 欧美性高跟鞋xxxxhd | 久久国产精品成人免费浪潮 | 久久精品牌麻豆国产大山 | 九九综合九九 | 毛片1000部免费看 | 国产精品久久电影网 | 国产黄色视 | 欧美一区日韩精品 | 在线观看亚洲电影 | 999成人精品 | 国产高清不卡av | 97国产大学生情侣酒店的特点 | 国产不卡视频在线 | 欧洲精品码一区二区三区免费看 | 天天色中文 | 久草在线资源观看 | 国产日韩精品一区二区三区 | 日韩一级片观看 | 免费观看性生活大片 | 久久久久欧美精品999 | 九九色在线观看 | 亚洲精品在线观看网站 | 韩国精品一区二区三区六区色诱 | 免费男女网站 | 国产字幕在线观看 | 国产视频1 | 亚洲欧洲一级 | 欧美精品一区二区免费 | 国产91对白在线 | 国产超碰在线观看 | 日本中文字幕在线视频 | 精品久久久久久久久久国产 | 美女很黄免费网站 | 综合久久精品 | 久久黄色小说视频 | 高清国产一区 | 成年人免费看 | 久草视频2| 欧美日韩电影在线播放 | 超碰99人人| 香蕉手机在线 | 欧美人牲| 日韩一区二区三区免费视频 | 爱爱av网| 精壮的侍卫呻吟h | 在线综合 亚洲 欧美在线视频 | 亚洲成aⅴ人片久久青草影院 | 婷婷丁香激情网 | 在线免费av网站 | 成人久久久久久久久久 | 日韩美女黄色片 | 欧美一级在线观看视频 | 夜夜躁日日躁狠狠久久88av | 午夜av色 | 成人超碰在线 | 激情丁香综合五月 | 久久免费视频精品 | 91 在线视频播放 | 欧美一级小视频 | 99热国内精品 | 91精品日韩 | 天天操天天操天天操天天操天天操 | 日本精品xxxx| 日韩免费视频在线观看 | 伊色综合久久之综合久久 | 精品视频免费观看 | 日韩精品一区二区三区免费视频观看 | 日韩手机视频 | 欧美 另类 交 | 国产一区欧美日韩 | 五月婷在线观看 | 亚洲激情综合 | 久色网 | 亚洲国产网站 | 国内一级片在线观看 | 日日夜夜网站 | 97精品国自产拍在线观看 | 伊人春色电影网 | 国产精品一区二区62 | 成人在线观看av | 热久精品 | 色资源中文字幕 | free. 性欧美.com | 精品国产一区二区三区久久久蜜臀 | 亚洲高清在线精品 | 右手影院亚洲欧美 | 亚洲色视频 | 免费看日韩片 | 精品国产一区二区三区在线观看 | www.99av| h久久| 不卡的一区二区三区 | 国产成人精品国内自产拍免费看 | 欧美日韩视频免费 | 欧美精品v国产精品v日韩精品 | 国产精品一区二区美女视频免费看 | 久草视频在线资源 | 国产精品毛片久久久 | 九九有精品 | 中文字幕亚洲精品日韩 | 四虎国产精品成人免费影视 | 日日夜夜婷婷 | 午夜av激情 | 欧美日韩高清一区二区 | 精品少妇一区二区三区在线 | 亚洲视频免费在线看 | av丝袜制服 | 欧美成人xxx| 九九免费精品视频在线观看 | 91精品国产欧美一区二区成人 | 国内精品久久久久久 | 亚洲欧美怡红院 | 深夜国产福利 | 成人aⅴ视频 | 日本h视频在线观看 | 国产一区国产精品 | 日本精品视频在线观看 | 亚洲撸撸 | 色中文字幕在线观看 | 国产精品国产三级在线专区 | 免费无遮挡动漫网站 | 黄色毛片大全 | 毛片基地黄久久久久久天堂 | 中文在线字幕免费观 | 精品色999 | 久久亚洲影视 | 91视频在线免费观看 | 久久综合九色综合久99 | 免费激情网 | 成人天堂网 | 91污在线| 国产高清专区 | 2021av在线 | 久久黄色片 | 天天插天天狠天天透 | 久久久久久久久久免费视频 | 成年人视频在线免费播放 | 国产视频欧美视频 | 日韩精品在线免费播放 | 999ZYZ玖玖资源站永久 | 国产精品黄 | 最新在线你懂的 | 99久久这里有精品 | 成人91在线观看 | 超碰在线94 | 国产在线p | 亚洲成av人片在线观看香蕉 | 久久国产精品久久精品国产演员表 | 一区三区视频在线观看 | 中文av不卡| 久久精国产 | 97超碰免费在线观看 | 国产免费不卡av | 18性欧美xxxⅹ性满足 | 免费日韩高清 | 四虎在线观看视频 | 国产精品永久免费视频 | 中文有码在线 | 国产福利资源 | 狠狠操操网 | 中文字幕在线观看的网站 | 亚洲伦理中文字幕 | 人人看看人人 | av在线a | 日韩va在线观看 | 国产原创av在线 | 成年人网站免费在线观看 | 丁香视频全集免费观看 | 日本护士三级少妇三级999 | 成年人电影毛片 | 午夜少妇av | 国产精品一区二区三区四区在线观看 | 人人干干人人 | 天天激情综合网 | 免费在线观看av的网站 | 久久蜜臀av | 91在线看| 人人澡人人草 | 亚洲国产免费网站 | 亚洲电影第一页av | 亚洲午夜精品福利 | 西西www4444大胆在线 | 国产专区视频在线观看 | 欧美日韩一区二区三区在线免费观看 | av片在线观看 | 欧美日韩中文在线 | 天天干天天插伊人网 | 人人爱夜夜操 | 三级性生活视频 | 国产电影黄色av | 亚洲 欧美 成人 | 97av视频| 亚洲人成人天堂h久久 | 亚洲免费一级 | 国产老太婆免费交性大片 | v片在线播放 | 久久精品99国产精品亚洲最刺激 | 亚洲国产精品一区二区久久hs | 91在线日韩 | 波多野结衣在线观看一区 | 国产精品久久久久久久久久不蜜月 | 免费看色的网站 | 91av社区| 美女网站色 | 国产在线专区 | 一区二区三区在线观看免费视频 | 狠狠的日 | 免费欧美精品 | www色网站| 国产成人a亚洲精品v | 国产中文自拍 | 黄色aa久久 | 精品久久一区二区三区 | 亚洲精品天天 | 久久伊人热| 嫩嫩影院理论片 | 国产高清精 | 少妇视频在线播放 | 99久久久久久国产精品 | 91精品国产乱码在线观看 | 色综合久久久久综合体桃花网 | 亚洲国产精品传媒在线观看 | 免费看三级 | 成人久久18免费网站图片 | 欧美日韩国产在线观看 | 免费日韩一区二区 | 亚洲aⅴ免费在线观看 | 久久综合狠狠综合久久狠狠色综合 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 欧美a√在线 | 高清在线一区 | 美女黄频视频大全 | 国产精品久久婷婷六月丁香 | 亚洲黄色免费观看 | 曰本免费av| 日日爽 | 黄色视屏免费在线观看 | 四虎永久国产精品 | 亚洲精品网站 | 亚洲精品乱码白浆高清久久久久久 | 天天干,狠狠干 | 久久综合狠狠综合久久综合88 | 国产又黄又爽又猛视频日本 | 久久成人综合 | 人人草在线视频 | 四月婷婷在线观看 | av中文电影| 国产精品女 | 精品一区精品二区高清 | 亚洲四虎在线 | 色视频在线免费观看 | 在线观看久久 | 天天射一射 | 亚洲理论片在线观看 | 在线不卡视频 | 久久大视频 | 黄色软件网站在线观看 | 欧美日韩在线精品一区二区 | 9色在线视频| 综合久久网站 | 亚洲一区久久 | 中文字幕日韩高清 | 黄色视屏av| 丰满少妇对白在线偷拍 | 美女国产 | 亚洲成av人片在线观看 | 中文字幕在线观看第一区 | 亚洲视频在线免费观看 | 免费看片成年人 | 午夜国产福利在线 | 亚洲美女免费精品视频在线观看 | 最新日韩在线观看 | 国产麻豆视频在线观看 | 99久久久久免费精品国产 | 91麻豆视频 | 久久激情五月婷婷 | 美女网站黄在线观看 | 亚洲成av人影院 | 日韩一区精品 | 西西4444www大胆视频 | 色精品视频 | 国产黄色片久久 | 国产精品 日韩精品 | 国产精品久久久久久久久久久免费 | 国产美女免费看 | 午夜色影院 | 最近日韩中文字幕中文 | 九色在线视频 | 久草在线这里只有精品 | 欧美日韩高清在线 | 久久网站免费 | 国产成人精品不卡 | 五月天国产精品 | 91在线播放视频 | 激情av网址 | 国产69精品久久99不卡的观看体验 | 99精品黄色片免费大全 | 欧美色精品天天在线观看视频 | 国产成人av网站 | 国产成人精品久久久久蜜臀 | 欧美日本一区 | 日日夜夜免费精品视频 | 欧美一级片在线播放 | 国产黄色一级大片 | 在线视频麻豆 | 高清不卡一区二区在线 | 亚洲丝袜一区二区 | 免费在线观看国产黄 | 伊人亚洲精品 | 欧美日韩免费看 | 欧美亚洲国产精品久久高清浪潮 | 亚洲激情一区二区三区 | 亚洲国产精品一区二区尤物区 | 片网址 | 日本一区二区免费在线观看 | 午夜a区| 久久国产精品免费一区 | 国产二区视频在线观看 | 青青看片| 在线激情影院一区 | 中文字幕乱码亚洲精品一区 | 亚洲欧美成人综合 | 91精品国产成人观看 | av手机版| 久久这里只有精品首页 | 久久伊人热 | 伊人日日干 | 丝袜制服综合网 | 欧美日本国产在线观看 | 久久久国产精品人人片99精片欧美一 | 香蕉久草 | 国产精品色婷婷 | 亚洲欧美偷拍另类 | 另类老妇性bbwbbw高清 | 国产成人三级三级三级97 | 激情丁香综合五月 | av三区在线 | av高清一区二区三区 | 亚洲国产一区在线观看 | 天天操夜夜操国产精品 | 亚洲国产精品va在线看黑人 | 成人一级电影在线观看 | 不卡的av在线播放 | 欧美精品在线观看免费 | 日韩手机在线 | 亚洲精品777 | 久久黄色影视 | av大片免费 | 国内揄拍国内精品 | 在线导航av | 午夜91视频 | 日韩精品免费一线在线观看 | 2024国产精品视频 | 五月婷婷黄色网 | 亚洲欧美怡红院 | 日本一区二区三区视频在线播放 | 久色 网 | 国产精品美女久久久久久久 | 欧美精品中文在线免费观看 | 99精品在线| 亚洲视频在线免费观看 | 最近2019年日本中文免费字幕 | 91香蕉视频 | 九九电影在线 | 深夜成人av | 黄色www在线观看 | 欧美日韩在线观看一区二区三区 | 91精彩视频 | 97色免费视频 | 丁香久久久 | 日韩和的一区二在线 | 国产精品自产拍在线观看桃花 | 亚洲精品黄色在线观看 | 久久视频99 | 久久久国产精品一区二区三区 | 久草在线手机观看 | 日韩精品第1页 | 午夜三级福利 | 国产亚洲在线视频 | 久艹在线播放 | 久久视频这里有久久精品视频11 | 激情五月婷婷综合网 | 亚洲成a人片77777kkkk1在线观看 | 国产手机在线观看视频 | 国产91亚洲精品 | 免费在线激情视频 | 亚洲成人动漫在线观看 | 色播五月激情五月 | 欧美日韩高清在线观看 | 91看片淫黄大片一级在线观看 | 伊人影院av | 狠狠久久伊人 | www.久草.com| 亚洲天堂网在线视频 | 亚洲成av人片在线观看www | 91精品福利在线 | 亚洲天天综合 | 丁香在线观看完整电影视频 | 欧美精品亚洲精品日韩精品 | 国产精品99久久免费黑人 | 免费看污网站 | 日韩精品亚洲专区在线观看 | 天天操天天干天天综合网 | 午夜久久久久久久久 | 日本精油按摩3 | 91最新视频 | 免费黄色小网站 | 激情综合交 | 亚洲视频电影在线 | 久久久久久黄色 | 在线视频日韩欧美 | 在线电影播放 | 久久er99热精品一区二区三区 | 国产高清在线免费观看 | 国产精品一区二区三区免费视频 | 国产专区视频在线观看 | 日韩在线观看电影 | 亚洲欧洲中文日韩久久av乱码 | 日韩精品亚洲专区在线观看 | 又黄又刺激的网站 | 99免费在线视频观看 | 亚洲欧洲日韩在线观看 | 丁香在线观看完整电影视频 | 国产亚州精品视频 | 美国三级黄色大片 | 91精品国产入口 | 国产99久久九九精品 | 五月黄色| 2019天天干夜夜操 | 亚洲h色精品| 黄色毛片一级片 | 青青草国产成人99久久 | 少妇性xxx | 草久视频在线观看 | 国产精品美女999 | 国产在线a视频 | 欧美激情第十页 | 97理论片 | 亚洲一区二区三区四区在线视频 | 五月天综合色 | 国产黄色片在线免费观看 | 韩国av一区二区 | 中文字幕亚洲高清 | 亚洲国产三级在线 | 日韩三级视频在线观看 | 激情欧美一区二区免费视频 | 国内精品一区二区 | 色资源在线观看 | 久久久毛片 | 国产黄色精品在线 | 一级黄色免费 | 久久国产综合视频 | 亚洲jizzjizz日本少妇 | 久久国产热 | 亚洲精品乱码久久久久久久久久 | 婷婷在线观看视频 | 日韩欧美在线观看一区 | 天天看天天干 | 一区二区视频电影在线观看 | 欧美激情视频在线观看免费 | 国产欧美久久久精品影院 | 99久久婷婷国产一区二区三区 | 91麻豆视频| 九九热只有这里有精品 | 91在线区 | 麻豆视频免费观看 | 黄色91免费观看 | 香蕉91视频| 亚洲黄色精品 | 婷婷丁香狠狠爱 | 久久新 | 欧美一级裸体视频 | 一区二区三区日韩视频在线观看 | 欧美va天堂va视频va在线 | 国产精品免费观看视频 | 久草久视频 | 色综合久久久久久久久五月 | 久久天天操 | 久久精品中文字幕 | 久久综合婷婷国产二区高清 | 亚洲成人av影片 | 国产精品久久久久av免费 | 亚洲国产手机在线 | 91中文在线观看 | 欧美一级久久久久 | 日韩久久久久久久久久 | 亚洲一区二区三区在线看 | 国产精品免费不卡 | 久久草网站 | 69视频在线播放 | 五月婷婷,六月丁香 | av九九| 可以免费观看的av片 | 国产一区二区在线观看免费 | 97超级碰碰碰碰久久久久 | 国产成人精品福利 | 日本h视频在线观看 | 精品国产乱码久久久久久1区二区 | 国产69久久| 国产九九精品视频 | 国内外成人在线视频 | 国产中文字幕视频 | 97在线播放视频 | 麻豆视频国产精品 | 日韩成人在线免费观看 | 久久久久久久久影院 | 久久久国产99久久国产一 | 天天干天天干 | 日韩女同一区二区三区在线观看 | 精品国产精品一区二区夜夜嗨 | 国产资源站| 在线电影a | 夜又临在线观看 | 久久亚洲二区 | 亚洲精品午夜aaa久久久 | 免费视频久久 | 国产1级视频 | 一区二精品 | 久久综合爱 | 99视频精品免费观看, | 日韩中文字幕一区 | 中文字幕在线观看网站 | 97国产精品久久 | 天天操天天射天天爱 | 啪啪激情网 | 日本mv大片欧洲mv大片 | 国产小视频免费在线网址 | 久久久久久久久久久影院 | 久久久久国产精品一区二区 | 日本久久久影视 | 精品亚洲免费 | 久久不见久久见免费影院 | 日韩av片无码一区二区不卡电影 | 国产成人一区二区三区在线观看 | 久久久高清 | 久二影院| 国产亚洲精品久久久久久电影 | 在线亚洲午夜片av大片 | 免费黄色在线网站 | 亚洲一区久久久 | 婷婷五月色综合 | 在线观看国产麻豆 | 亚洲成人资源在线观看 | 日韩电影在线观看一区二区三区 | 日本字幕网 | 精品久久久久久综合 | 日韩欧美精品一区二区三区经典 | 中文字幕乱偷在线 | 亚洲精品视频在线播放 | 玖玖玖精品 | 欧美日韩精品国产 | 久久99热精品 | 成人免费av电影 | 99久e精品热线免费 99国产精品久久久久久久久久 | 在线免费观看国产黄色 | 精品免费观看 | 亚洲在线看 | 中文在线字幕观看电影 | 一区二区三区日韩在线观看 | 美女久久99| 欧美va在线观看 | 国产精品成人aaaaa网站 | 久久伦理电影 | 园产精品久久久久久久7电影 | 狂野欧美激情性xxxx欧美 | 狠狠的操你 | 亚洲经典在线 | 久久久在线免费观看 | 日韩精品欧美专区 | 中文字幕人成人 | 欧美日本在线视频 | 亚洲毛片在线观看. | 又粗又长又大又爽又黄少妇毛片 | 91视频久久久久 | 日三级在线 | 免费午夜网站 | 久久国产精品久久精品国产演员表 | 91亚色视频 | 久久精品播放 | www国产一区 | 天天插天天干天天操 | 亚洲夜夜网 | 天天色天天射天天干 | 欧美日韩国产综合网 | 又黄又爽又色无遮挡免费 | 99婷婷| 亚洲黄在线观看 | 国产中文字幕第一页 | 日本电影久久 | 亚洲在线视频网站 | 精品国产欧美一区二区三区不卡 | 亚洲精品国偷自产在线91正片 | 成人毛片100免费观看 | 在线看av的网址 | 国产女人40精品一区毛片视频 | 国产在线看一区 | 日本狠狠色| 久久久精品国产一区二区三区 | 91完整视频 | 国产黄色免费电影 | 日韩二区在线播放 | 国产91粉嫩白浆在线观看 | 黄色片免费在线 | 天天射网站 | 美女免费视频一区二区 | 欧美久久99| 天天插天天狠 | 97成人精品视频在线观看 | 99精品99 | 欧美午夜a | www久草| 狠狠色丁香婷婷综合久小说久 | 国产麻豆果冻传媒在线观看 | 亚洲精品18日本一区app | 日本中文字幕电影在线免费观看 | 国产精品第三页 | 久久综合影音 | 久久久久久久久久久久久影院 | 欧美91av| 久久综合狠狠综合 | 国产3p视频 | 久久精品国产亚洲a | 欧美一区二区三区在线播放 | 五月婷婷狠狠 | 丁香5月婷婷久久 | 国产午夜一区 | 91丝袜美腿| 日韩在线首页 | 久久爱导航 | 欧美一级在线看 | 久久a国产| 欧美激情精品一区 | 天堂av免费看 | 欧美日韩亚洲在线观看 | 五月天激情视频在线观看 | 永久免费看av | 99精品在线视频播放 | 在线观看国产高清视频 | 蜜桃视频在线观看一区 | 免费看成人 | 国内少妇自拍视频一区 | 日韩天天干| 久久试看| 亚洲国产精品日韩 | 伊人手机在线 | 久久99精品视频 | 美女视频a美女大全免费下载蜜臀 | 国产区第一页 | 日日躁夜夜躁xxxxaaaa | 日本性久久 | 久99精品 | 在线视频a | 天天色官网 | 久久视讯| av 一区 二区 久久 | 2023亚洲精品国偷拍自产在线 | 欧美日韩亚洲第一页 | 91中文在线| 久久久综合| 色综合久久久久综合 | 激情综合五月天 | 18av在线视频 | 99视频网站 | 亚洲国产三级 | 国产一区二区在线免费视频 | 亚洲综合在线一区二区三区 | 欧美视频日韩视频 | 91精品推荐| 久久久影院一区二区三区 | 91视频久久久久久 | 日日操网站 | 中文字幕婷婷 | 精品国产不卡 | 国产对白av| 久久公开免费视频 | 91成人亚洲 | 狠狠操狠狠干天天操 | 精品一区电影国产 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 亚洲特级毛片 | 久久亚洲福利视频 | 亚洲狠狠婷婷 | 日本激情视频中文字幕 | 日韩欧美区| 狠狠干中文字幕 | 99久久99| 国产成人精品在线播放 | 色婷婷成人网 | 日韩精品第1页 | 国产在线视频在线观看 | 五月婷婷六月丁香在线观看 | 国产一在线精品一区在线观看 | 美女国内精品自产拍在线播放 | 中文字幕中文字幕 | 91.麻豆视频 | 三上悠亚一区二区在线观看 | 99日精品 | 久久久久国产视频 | 国产毛片久久 | 免费影视大全推荐 | 国产精品久久久一区二区三区网站 | 国产高清视频免费观看 | 欧美天天干 | 国产精品理论视频 | 美女网站色在线观看 | 亚洲精品美女视频 | 欧美日韩一区二区三区在线免费观看 | 不卡视频国产 | 国产视频91在线 | 在线中文字幕视频 | 蜜桃视频在线观看一区 | 探花视频免费观看高清视频 | 中文字幕在线观看完整版电影 | 亚洲视频免费视频 | 中文字幕超清在线免费 | 亚洲精品久久久久中文字幕二区 | 色a在线观看 | 碰超在线97人人 | 人人精品久久 | 亚洲三级在线播放 | 91桃色视频 | 亚洲毛片一区二区三区 | 欧美大荫蒂xxx | 999男人的天堂 | 欧美精品久久久久久久久久丰满 | 亚洲精品国产欧美在线观看 | 久久99久久99精品免视看婷婷 | 亚洲激情中文 | 亚洲免费av电影 | 国产精品麻豆免费版 | 最近免费在线观看 | 色资源在线 | 久久精品视频免费观看 | 欧美三级免费 | 成人一级影视 | av先锋影音少妇 | 天天干天天干天天干天天干天天干天天干 | 国产伦理精品一区二区 | 最近中文字幕完整视频高清1 | 国产精品s色 | 91污视频在线 | 天天综合狠狠精品 | 国产99免费 | 在线观看免费视频你懂的 | 天天综合入口 | 国产91国语对白在线 | 国产精品你懂的在线观看 | 日日躁夜夜躁xxxxaaaa | 欧美精品免费在线 | 国语精品免费视频 | 国产成年人av | 麻豆国产在线视频 | 国产日韩精品一区二区在线观看播放 | 国产精品一区专区欧美日韩 | 亚洲亚洲精品在线观看 | 国产亚洲精品电影 | 色吊丝av中文字幕 | 国产综合激情 | 日韩影视在线观看 | 久久久久久久久久久久国产精品 | 精品字幕在线 | 91av视频在线观看免费 | 黄色三级免费网址 | 五月导航 | 亚洲精品xx | 有码一区二区三区 | 特级毛片在线 | 亚洲最大成人网4388xx | 美女福利视频一区二区 | 日韩国产精品久久 | 丁香影院在线 | 亚洲在线观看av | 五月婷影院 | 日本在线观看视频一区 | 亚洲日日射| 日韩av男人的天堂 | 天天操天天摸天天射 | 国产高清在线精品 | 中文字幕乱码日本亚洲一区二区 | av中文字幕电影 | 精品一区二区免费 | av国产在线观看 | 国产在线a免费观看 | 国产精品久久一卡二卡 | 国产一区二区三区网站 | 久久精品首页 | 日本中文字幕网站 | 东方av在| 欧美 日韩 国产 中文字幕 | 国产精品久久久久久影院 | 色综合久久久 | 麻豆果冻剧传媒在线播放 | 国产精品国产三级国产专区53 | 亚洲一区二区三区91 | 在线a人片免费观看视频 | 午夜精品久久久久久久99热影院 | 国产免费视频在线 | 国产成人久久 | 国产裸体无遮挡 | 右手影院亚洲欧美 | 中文字幕在线看视频国产中文版 | 国产女教师精品久久av | 91视频黄色 | 99亚洲国产精品 | 99草在线视频 | 欧洲亚洲激情 | 免费亚洲黄色 | 丁香婷婷自拍 | 中文字幕123区| 欧美日韩国产在线精品 | 国产99久久久欧美黑人 | 日韩在线电影一区二区 | 手机av网站 | 婷婷激情久久 | 午夜一级免费电影 | 综合激情 | 国产精品久久久久久久妇 | 免费看网站在线 | 免费观看一区二区 | 日韩精品免费在线播放 | 日韩av福利在线 | 最近中文字幕国语免费高清6 | 亚洲精品自拍视频在线观看 | 97视频在线观看播放 | 久久久免费电影 | 最新国产在线 | 综合色影院 | 久草视频免费观 | 激情伊人五月天久久综合 | 日产av在线播放 | 园产精品久久久久久久7电影 | 黄色av一级 | 久 久久影院| 91久久精品一区二区三区 | 亚洲一一在线 | 欧美a级成人淫片免费看 | 在线观看深夜福利 | 综合激情 | 国产一区二区三区视频在线 | 91伊人久久大香线蕉蜜芽人口 | 91大神精品视频在线观看 | 91探花国产综合在线精品 | 久久久69 | 97视频免费观看2区 亚洲视屏 | 在线 国产 亚洲 欧美 | 亚洲国产精品免费 | 免费看v片 | 亚洲国产精品va在线看黑人 | 欧美怡红院视频 | 一二区电影 | 日韩中午字幕 | 一二区精品 | 国产精品免费麻豆入口 |