javascript
004_JSONArray对象公共方法
1. add方法給JSONArray添加元素
1.1. boolean add(Object value), 給JSONArray添加值, 被當作Object類型添加。json-lib底層, 會創建一個JsonConfig對象使用。
1.2. boolean add(Object value, JsonConfig jsonConfig), 給JSONArray添加值, 被當作Object類型添加, 并指定一個JsonConfig。
1.3. void add(int index, Object value), 給JSONArray指定位置添加值, 被當作Object類型添加, 該位置的值以及之后位置的值向后移動一位。json-lib底層, 會創建一個JsonConfig對象使用。
1.4. void add(int index, Object value, JsonConfig jsonConfig), 給JSONArray指定位置添加值, 被當作Object類型添加, 該位置的值以及之后位置的值向后移動一位。并指定一個JsonConfig。
1.5. boolean addAll(Collection collection), 給JSONArray添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。json-lib底層, 會創建一個JsonConfig對象使用。
1.6. boolean addAll(Collection collection, JsonConfig jsonConfig), 給JSONArray添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。 并指定一個JsonConfig。
1.7. boolean addAll(int index, Collection collection), 給JSONArray指定位置添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。json-lib底層, 會創建一個JsonConfig對象使用。
1.8. boolean addAll(int index, Collection collection, JsonConfig jsonConfig), 給JSONArray指定位置添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。并指定一個JsonConfig。
1.9. add和addAll給JSONArray添加值, 事實上調用的是Java底層boolean java.util.List.add(Object e)的方法添加對象。
1.10. add和addAll給JSONArray指定位置添加值, 事實上調用的是Java底層void java.util.List.add(int index, Object element)的方法添加對象。
1.11. add系列方法可以給JSONArray添加JSONNull、空對象變量、空對象常量、"null"字符串, 效果是一樣的都是"null"字符串。
1.12. 新建一個名為JSONArray的Java項目, 同時添加相關jar包。
1.13. 新建Sensor.java
package com.fj.ja;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.14. 新建JSONArrayAdd.java
package com.fj.ja;import java.util.ArrayList; import java.util.Arrays; 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;/*** JSONArray* 1. boolean add(Object value), 給JSONArray添加值, 被當作Object類型添加。json-lib底層, 會創建一個JsonConfig對象使用。* 2. boolean add(Object value, JsonConfig jsonConfig), 給JSONArray添加值, 被當作Object類型添加, 并指定一個JsonConfig。* 3. void add(int index, Object value), 給JSONArray指定位置添加值, 被當作Object類型添加, 該位置的值以及之后位置的值向后移動一位。json-lib底層, 會創建一個JsonConfig對象使用。 * 4. void add(int index, Object value, JsonConfig jsonConfig), 給JSONArray指定位置添加值, 被當作Object類型添加, 該位置的值以及之后位置的值向后移動一位。并指定一個JsonConfig。* 5. boolean addAll(Collection collection), 給JSONArray添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。json-lib底層, 會創建一個JsonConfig對象使用。* 6. boolean addAll(Collection collection, JsonConfig jsonConfig), 給JSONArray添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。 并指定一個JsonConfig。* 7. boolean addAll(int index, Collection collection), 給JSONArray指定位置添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。json-lib底層, 會創建一個JsonConfig對象使用。* 8. boolean addAll(int index, Collection collection, JsonConfig jsonConfig), 給JSONArray指定位置添加Collection類型的值, 集合的元素被一個一個地添加到了JSONArray里。并指定一個JsonConfig。* 9. add和addAll給JSONArray添加值, 事實上調用的是Java底層boolean java.util.List.add(Object e)的方法添加對象。* 10. add和addAll給JSONArray指定位置添加值, 事實上調用的是Java底層void java.util.List.add(int index, Object element)的方法添加對象。* 11. add系列方法可以給JSONArray添加JSONNull、空對象變量、空對象常量、"null"字符串, 效果是一樣的都是"null"字符串。*/ public class JSONArrayAdd {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().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.add("NFC");transferFunction.add("WLAN");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null對象變量Object nullObjectVar = null;JSONArray jsonArray = new JSONArray();// 添加String類型的值, 被當作Object類型添加, 添加到JSONArray里面是String類型的值jsonArray.add("HUAWEI P40 Pro");// 添加boolean類型的值, 被當作Object類型添加, 添加到JSONArray里面是boolean類型的值jsonArray.add(true);// 添加int類型的值, 被當作Object類型添加, 添加到JSONArray里面是int類型的值jsonArray.add(5988);// 添加long類型的值, 被當作Object類型添加, 添加到JSONArray里面是long類型的值jsonArray.add(2601010188703L);// 給JSONArray指定位置添加double類型的值, 被當作Object類型添加, 添加到JSONArray里面是double類型的值jsonArray.add(0, 6.58D); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.add(mobileColor, new JsonConfig());// 給JSONArray指定位置添加集合類型的值, , 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.add(0, isp, new JsonConfig()); // 添加Map類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.add(mainParam); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.add(sensor); // 添加JSONObject類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.add(netJsonObject); // 添加JSONArray類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.add(transferFunction); jsonArray.add(""); // JSONArray可以添加""空字符串// 添加JSONNull類型的值, 被當作Object類型添加, 添加到JSONArray里面是"null"字符串jsonArray.add(jsonNull);jsonArray.add(nullObjectVar); // JSONArray可以添加空對象變量, 實際上存放的也是"null"字符串jsonArray.add(null); // JSONArray可以添加空對象常量, 實際上存放的也是"null"字符串jsonArray.add("null"); // JSONArray可以添加"null"字符串// 使用addAll給JSONArray添加集合類型的值, 會把集合里的元素一個一個地添加到JSONArray里面jsonArray.addAll(isp); jsonArray.addAll(isp, new JsonConfig());jsonArray.addAll(0, Arrays.asList(mobileColor));jsonArray.addAll(0, Arrays.asList(mobileColor), new JsonConfig());System.out.println(jsonArray.toString());} }1.15. 運行JSONArrayAdd.java
2. element方法給JSONArray添加元素
2.1. element給JSONArray添加值
2.1.1. JSONArray element(String value), 給JSONArray添加String類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.2. JSONArray element(boolean value), 給JSONArray添加boolean類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.3. JSONArray element(int value), 給JSONArray添加int類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.4. JSONArray element(long value), 給JSONArray添加long類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.5. JSONArray element(double value), 給JSONArray添加double類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.6. JSONArray element(JSONNull value), 給JSONArray添加JSONNull類型的值。
2.1.7. JSONArray element(Collection value), 給JSONArray添加Collection類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.8. JSONArray element(Map value), 給JSONArray添加Map類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.9. JSONArray element(JSONObject value), 給JSONArray添加JSONObject類型的值。
2.1.10. JSONArray element(Object value), 給JSONArray添加Object類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.1.11. JSONArray element(String value, JsonConfig jsonConfig), 給JSONArray添加String類型的值。傳入了一個JsonConfig對象。
2.1.12. JSONArray element(Collection value, JsonConfig jsonConfig), 給JSONArray添加Collection類型的值。傳入了一個JsonConfig對象。
2.1.13. JSONArray element(Map value, JsonConfig jsonConfig), 給JSONArray添加Map類型的值。傳入了一個JsonConfig對象。
2.1.14. JSONArray element(Object value, JsonConfig jsonConfig), 給JSONArray添加Object類型的值。傳入了一個JsonConfig對象。
2.2. element給JSONArray指定位置替換值
2.2.1. JSONArray element(int index, String value), 給JSONArray指定位置替換String類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.2. JSONArray element(int index, boolean value), 給JSONArray指定位置替換boolean類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.3. JSONArray element(int index, int value), 給JSONArray指定位置替換int類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.4. JSONArray element(int index, long value), 給JSONArray指定位置替換long類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.5. JSONArray element(int index, double value), 給JSONArray指定位置替換double類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.6. JSONArray element(int index, Collection value), 給JSONArray指定位置替換Collection類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.7. JSONArray element(int index, Map value), 給JSONArray指定位置替換Map類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.8. JSONArray element(int index, Object value), 給JSONArray指定位置替換Object類型的值。json-lib底層, 會創建一個JsonConfig對象使用。
2.2.9. JSONArray element(int index, String value, JsonConfig jsonConfig), 給JSONArray指定位置替換String類型的值。傳入了一個JsonConfig對象。
2.2.10. JSONArray element(int index, Collection value, JsonConfig jsonConfig), 給JSONArray指定位置替換Collection類型的值。傳入了一個JsonConfig對象。
2.2.11. JSONArray element(int index, Map value, JsonConfig jsonConfig), 給JSONArray指定位置替換Map類型的值。傳入了一個JsonConfig對象。
2.2.12. JSONArray element(int index, Object value, JsonConfig jsonConfig), 給JSONArray指定位置替換Object類型的值。傳入了一個JsonConfig對象。
2.3. element給JSONArray添加值和指定位置替換值總結
2.3.1. element給JSONArray添加值。事實上調用的是Java底層boolean java.util.List.add(Object e)的方法添加對象。
2.3.2. element給JSONArray指定位置替換值。事實上調用的是Java底層Object java.util.List.set(int index, Object element)的方法設置對象。
2.3.3. element系列方法都返回JSONArray對象本身, 因此可以進行鏈式編程(jsonArray.element("").element(true).element(0))。
2.3.4. element系列方法支持添加或替換String、boolean、int、long、double、JSONNull、Collection、Map、JSONObject、Object類型的值。
2.3.5. 可以給JSONArray添加JSONNull、null對象變量(非String類型, 如果是null字符串變量, 添加的是""空字符串)、"null"字符串, 效果是一樣的都是"null"字符串。添加空對象常量, 語法錯誤。
2.4. 例子
2.4.1. 新建JSONArrayElement.java
package com.fj.ja;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;/*** JSONArray* 1. JSONArray element(String value), 給JSONArray添加String類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 2. JSONArray element(boolean value), 給JSONArray添加boolean類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 3. JSONArray element(int value), 給JSONArray添加int類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 4. JSONArray element(long value), 給JSONArray添加long類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 5. JSONArray element(double value), 給JSONArray添加double類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 6. JSONArray element(JSONNull value), 給JSONArray添加JSONNull類型的值。* 7. JSONArray element(Collection value), 給JSONArray添加Collection類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 8. JSONArray element(Map value), 給JSONArray添加Map類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 9. JSONArray element(JSONObject value), 給JSONArray添加JSONObject類型的值。* 10. JSONArray element(Object value), 給JSONArray添加Object類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 11. JSONArray element(String value, JsonConfig jsonConfig), 給JSONArray添加String類型的值。傳入了一個JsonConfig對象。* 12. JSONArray element(Collection value, JsonConfig jsonConfig), 給JSONArray添加Collection類型的值。傳入了一個JsonConfig對象。* 13. JSONArray element(Map value, JsonConfig jsonConfig), 給JSONArray添加Map類型的值。傳入了一個JsonConfig對象。* 14. JSONArray element(Object value, JsonConfig jsonConfig), 給JSONArray添加Object類型的值。傳入了一個JsonConfig對象。* * 15. JSONArray element(int index, String value), 給JSONArray指定位置替換String類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 16. JSONArray element(int index, boolean value), 給JSONArray指定位置替換boolean類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 17. JSONArray element(int index, int value), 給JSONArray指定位置替換int類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 18. JSONArray element(int index, long value), 給JSONArray指定位置替換long類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 19. JSONArray element(int index, double value), 給JSONArray指定位置替換double類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 20. JSONArray element(int index, Collection value), 給JSONArray指定位置替換Collection類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 21. JSONArray element(int index, Map value), 給JSONArray指定位置替換Map類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 22. JSONArray element(int index, Object value), 給JSONArray指定位置替換Object類型的值。json-lib底層, 會創建一個JsonConfig對象使用。* 23. JSONArray element(int index, String value, JsonConfig jsonConfig), 給JSONArray指定位置替換String類型的值。傳入了一個JsonConfig對象。* 24. JSONArray element(int index, Collection value, JsonConfig jsonConfig), 給JSONArray指定位置替換Collection類型的值。傳入了一個JsonConfig對象。* 25. JSONArray element(int index, Map value, JsonConfig jsonConfig), 給JSONArray指定位置替換Map類型的值。傳入了一個JsonConfig對象。* 26. JSONArray element(int index, Object value, JsonConfig jsonConfig), 給JSONArray指定位置替換Object類型的值。傳入了一個JsonConfig對象。* * 27. element給JSONArray添加值。事實上調用的是Java底層boolean java.util.List.add(Object e)的方法添加對象。* 28. element給JSONArray指定位置替換值。事實上調用的是Java底層Object java.util.List.set(int index, Object element)的方法設置對象。* 29. element系列方法都返回JSONArray對象本身, 因此可以進行鏈式編程(jsonArray.element("").element(true).element(0))。* 30. element系列方法支持添加或替換String、boolean、int、long、double、JSONNull、Collection、Map、JSONObject、Object類型的值。* 31. 可以給JSONArray添加JSONNull、null對象變量(非String類型, 如果是null字符串變量, 添加的是""空字符串)、"null"字符串, 效果是一樣的都是"null"字符串。添加空對象常量, 語法錯誤。*/ public class JSONArrayElement {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// null對象變量(非String)Object nullObjectVar = null;String strNullVar = null;// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro") // 添加String類型的值.element(true) // 添加boolean類型的值.element(5988) // 添加int類型的值.element(2601010188703L) // 添加long類型的值.element(6.58D) // 添加double類型的值.element(mobileColor) // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值.element(isp) // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值.element(mainParam) // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值.element(sensor, new JsonConfig()) // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值.element(netJsonObject) // 添加JSONObject類型的值.element(transferFunction) // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值.element("") // JSONArray可以添加""空字符串.element(jsonNull) // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串.element(nullObjectVar) // JSONArray可以添加null對象變量(非String類型), 實際上存放的也是"null"字符串 // .element(null) // JSONArray可以添加空對象常量, 語法錯誤.element("null") // JSONArray可以添加"null"字符串.element(strNullVar) // JSONArray可以添加String類型的null對象變量, 實際上存放的是""字符串.element(0, "華為P40 Pro") // 給JSONArray指定位置添加值, 替換掉原位置的值.element(1, "", new JsonConfig()); // 給JSONArray指定位置 替換String值System.out.println(jsonArray.toString()); } }2.4.2. 運行JSONArrayElement.java
3. add和element給JSONArray添加元素對比
3.1. add給JSONArray添加元素
3.1.1. add給JSONArray添加值, 被當作Object類型添加。
3.1.2. add可以給JSONArray指定位置添加值, 該位置的值以及之后的值向后移動一位。
3.2. element給JSONArray添加元素
3.2.1. element給JSONArray添加值, 支持追加String、boolean、int、long、double、JSONNull、Collection、Map、JSONObject、Object類型的值。
3.2.2. element給JSONArray指定位置添加值, 替換掉原位置的值。
3.3. element的優勢
3.3.1. 事實上, 值可以是String, boolean、int、long、double、JSONNull、JSONObject、JSONArray、Object類型的值。element比add方法支持眾多的類型。
3.3.2. element返回JSONArray對象本身, 支持鏈式編程。
4. set方法給JSONArray設置值
4.1. Object set(int index, Object value), 給指定位置設置值, 并返回舊值。json-lib底層, 會創建一個JsonConfig對象使用。
4.2. Object set(int index, Object value, JsonConfig jsonConfig), 給指定位置設置值, 并返回舊值。傳入了一個JsonConfig對象。
4.3. 事實上調用的是Java底層Object java.util.List.set(int index, Object element)的方法設置對象。
4.4. 新建JSONArraySet.java
package com.fj.ja;import net.sf.json.JSONArray;/*** JSONArray* 1. Object set(int index, Object value), 給指定位置設置值, 并返回舊值。json-lib底層, 會創建一個JsonConfig對象使用。* 2. Object set(int index, Object value, JsonConfig jsonConfig), 給指定位置設置值, 并返回舊值。傳入了一個JsonConfig對象。* 3. 事實上調用的是Java底層Object java.util.List.set(int index, Object element)的方法設置對象。 */ public class JSONArraySet {public static void main(String[] args) {JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro").element(true);Object oldValue = jsonArray.set(0, false);System.out.println(oldValue);System.out.println(jsonArray.toString());} }4.5. 運行JSONArraySet.java
5. get方法獲得值
5.1. String getString(int index), 獲取指定位置String類型的值, 如果類型不匹配會報錯。
5.2. boolean getBoolean(int index), 獲取指定位置boolean類型的值, 如果類型不匹配會報錯。
5.3. int getInt(int index), 獲取指定位置int類型的值, 如果類型不匹配會報錯。
5.4. long getLong(int index), 獲取指定位置long類型的值, 如果類型不匹配會報錯。可以接收int類型的值。
5.5. double getDouble(int index), 獲取指定位置double類型的值, 如果類型不匹配會報錯。
5.6. JSONArray getJSONArray(int index), 獲取指定位置JSONArray類型的值, 如果類型不匹配會報錯。
5.7. JSONObject getJSONObject(int index), 獲取指定位置JSONObject類型的值, 如果類型不匹配會報錯。
5.8. Object get(int index), 獲取指定位置Object類型的值。可以接收所有類型的值。
5.9. 如果試圖獲取一個不存在的下標, 會報錯。
5.10. 新建JSONArrayGet.java
package com.fj.ja;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;/*** JSONArray* 1. String getString(int index), 獲取指定位置String類型的值, 如果類型不匹配會報錯。* 2. boolean getBoolean(int index), 獲取指定位置boolean類型的值, 如果類型不匹配會報錯。* 3. int getInt(int index), 獲取指定位置int類型的值, 如果類型不匹配會報錯。* 4. long getLong(int index), 獲取指定位置long類型的值, 如果類型不匹配會報錯。可以接收int類型的值。* 5. double getDouble(int index), 獲取指定位置double類型的值, 如果類型不匹配會報錯。* 6. JSONArray getJSONArray(int index), 獲取指定位置JSONArray類型的值, 如果類型不匹配會報錯。* 7. JSONObject getJSONObject(int index), 獲取指定位置JSONObject類型的值, 如果類型不匹配會報錯。* 8. Object get(int index), 獲取指定位置Object類型的值。可以接收所有類型的值。* 9. 如果試圖獲取一個不存在的下標, 會報錯。*/ public class JSONArrayGet {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro"); // 添加String類型的值jsonArray.element(true); // 添加boolean類型的值jsonArray.element(5988); // 添加int類型的值jsonArray.element(2601010188703L); // 添加long類型的值jsonArray.element(6.58D); // 添加double類型的值jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串System.out.println(jsonArray.getString(0)); // 獲取指定位置的String類型的值System.out.println(jsonArray.getBoolean(1)); // 獲取指定位置的boolean類型的值System.out.println(jsonArray.getInt(4)); // 獲取指定位置的int類型的值System.out.println(jsonArray.getLong(3)); // 獲取指定位置的long類型的值System.out.println(jsonArray.getDouble(4)); // 獲取指定位置的double類型的值System.out.println(jsonArray.getJSONArray(5)); // 獲取指定位置的JSONArray類型的值System.out.println(jsonArray.getJSONArray(6));System.out.println(jsonArray.getJSONObject(7)); // 獲取指定位置的JSONObject類型的值System.out.println(jsonArray.get(8)); // 獲取指定位置的Object類型的值System.out.println(jsonArray.getJSONObject(9));System.out.println(jsonArray.getJSONArray(10));System.out.println(jsonArray.get(11));} }5.11. 運行JSONArrayGet.java
6. opt方法獲得值
6.1. String optString(int index), 獲取指定位置String類型的值。
6.2. boolean optBoolean(int index), 獲取指定位置boolean類型的值。
6.3. int optInt(int index), 獲取指定位置int類型的值。
6.4. long optLong(int index), 獲取指定位置long類型的值。可以接收int類型的值。
6.5. double optDouble(int index), 獲取指定位置double類型的值。
6.6. JSONObject optJSONObject(int index), 獲取指定位置JSONArray類型的值。
6.7. JSONArray optJSONArray(int index), 獲取指定位置JSONObject類型的值。
6.8. Object opt(int index), 獲取指定位置Object類型的值。可以接收所有類型的值。
6.9. String optString(int index, String defaultValue), 獲取指定位置String類型的值, 可以指定一個String類型的默認值。
6.10. boolean optBoolean(int index, boolean defaultValue), 獲取指定位置boolean類型的值, 可以指定一個boolean類型的默認值。
6.11. int optInt(int index, int defaultValue), 獲取指定位置int類型的值, 可以指定一個int類型的默認值。
6.12. long optLong(int index, long defaultValue), 獲取指定位置long類型的值, 可以指定一個long類型的默認值。可以接收int類型的值。
6.13. double optDouble(int index, double defaultValue), 獲取指定位置double類型的值, 可以指定一個double類型的默認值。
6.14. 如果類型不匹配不會報錯, 返回該類型的默認值或者使用默認值(相比get獲取值更實用)。
6.15. 如果試圖獲取一個不存在的下標, 不會報錯, 返回該類型的默認值或者使用默認值(相比get獲取值更實用)。
6.16. 可以給String、int、boolean、double、long類型指定默認值(相比get獲取值更實用)。
6.17. 創建JSONArrayOpt.java
package com.fj.ja;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;/*** JSONArray* 1. String optString(int index), 獲取指定位置String類型的值。* 2. boolean optBoolean(int index), 獲取指定位置boolean類型的值。* 3. int optInt(int index), 獲取指定位置int類型的值。* 4. long optLong(int index), 獲取指定位置long類型的值。可以接收int類型的值。* 5. double optDouble(int index), 獲取指定位置double類型的值。* 6. JSONObject optJSONObject(int index), 獲取指定位置JSONArray類型的值。* 7. JSONArray optJSONArray(int index), 獲取指定位置JSONObject類型的值。* 8. Object opt(int index), 獲取指定位置Object類型的值。可以接收所有類型的值。* 9. String optString(int index, String defaultValue), 獲取指定位置String類型的值, 可以指定一個String類型的默認值。* 10. boolean optBoolean(int index, boolean defaultValue), 獲取指定位置boolean類型的值, 可以指定一個boolean類型的默認值。* 11. int optInt(int index, int defaultValue), 獲取指定位置int類型的值, 可以指定一個int類型的默認值。* 12. long optLong(int index, long defaultValue), 獲取指定位置long類型的值, 可以指定一個long類型的默認值。可以接收int類型的值。* 13. double optDouble(int index, double defaultValue), 獲取指定位置double類型的值, 可以指定一個double類型的默認值。* 14. 如果類型不匹配不會報錯, 返回該類型的默認值或者使用默認值(相比get獲取值更實用)。* 15. 如果試圖獲取一個不存在的下標, 不會報錯, 返回該類型的默認值或者使用默認值(相比get獲取值更實用)。* 16. 可以給String、int、boolean、double、long類型指定默認值(相比get獲取值更實用)。*/ public class JSONArrayOpt {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro"); // 添加String類型的值jsonArray.element(true); // 添加boolean類型的值jsonArray.element(5988); // 添加int類型的值jsonArray.element(2601010188703L); // 添加long類型的值jsonArray.element(6.58D); // 添加double類型的值jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串System.out.println(jsonArray.optString(0, "")); // 獲取指定位置的String類型的值, 并指定""空字符串為默認值System.out.println(jsonArray.optBoolean(1, false)); // 獲取指定位置的boolean類型的值, 并指定false為默認值System.out.println(jsonArray.optInt(2, 0)); // 獲取指定位置的int類型的值, 并指定0為默認值System.out.println(jsonArray.optLong(3, 0L)); // 獲取指定位置的long類型的值, 并指定0L為默認值System.out.println(jsonArray.optDouble(4, 0.0D)); // 獲取指定位置的double類型的值, 并指定0.0D為默認值System.out.println(jsonArray.optJSONArray(5)); // 獲取指定位置的JSONArray類型的值System.out.println(jsonArray.optJSONArray(6));System.out.println(jsonArray.optJSONObject(7)); // 獲取指定位置的JSONObject類型的值System.out.println(jsonArray.opt(8)); // 獲取指定位置的Object類型的值System.out.println(jsonArray.optJSONObject(9));System.out.println(jsonArray.optJSONArray(10));System.out.println(jsonArray.opt(11));} }6.18. 運行JSONArrayOpt.java
7. discard方法丟棄掉一個元素
7.1. JSONArray discard(int index), 根據下標丟棄掉一個元素, 只要下標存在可以丟棄任何類型。并返回原JSONArray對象。
7.2. JSONArray discard(Object o)根據對象丟棄掉一個元素, 可以丟棄String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, 丟棄不掉數組、JavaBean類型。并返回原JSONArray對象。
7.3. 創建JSONArrayDiscard.java
package com.fj.ja;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;/*** JSONArray* 1. JSONArray discard(int index), 根據下標丟棄掉一個元素, 只要下標存在可以丟棄任何類型。并返回原JSONArray對象。* 2. JSONArray discard(Object o)根據對象丟棄掉一個元素, 可以丟棄String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, * 丟棄不掉數組、JavaBean類型。并返回原JSONArray對象。*/ public class JSONArrayDiscard {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro"); // 添加String類型的值jsonArray.element(true); // 添加boolean類型的值jsonArray.element(5988); // 添加int類型的值jsonArray.element(2601010188703L); // 添加long類型的值jsonArray.element(6.58D); // 添加double類型的值jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串System.out.println(jsonArray);// 根據對象丟棄掉一個元素, 可以丟棄String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, 丟棄不掉數組、JavaBean類型。JSONArray objRemove = jsonArray.discard(transferFunction); JSONArray idxRemove = jsonArray.discard(5); // 根據下標丟棄掉一個元素, 只要下標存在可以丟棄任何類型System.out.println(jsonArray);System.out.println((jsonArray == idxRemove) + " " + (jsonArray == objRemove) + " " + (idxRemove == objRemove));} }7.4. 運行JSONArrayDiscard.java
8. remove方法刪除一個值
8.1. Object remove(int index), 根據下標刪除一個元素, 并返回刪除的元素, 只要下標存在可以刪除任何類型。
8.2. boolean remove(Object o), 根據對象刪除一個對象, 并返回是否刪除成功/失敗, 可以刪除String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, 刪除不掉數組、JavaBean類型。
8.3. boolean removeAll(Collection collection), 根據集合刪除元素, 并返回是否刪除成功/失敗, 只要刪除成功集合中的一個元素就返回成功。json-lib底層, 會創建一個JsonConfig對象使用。事實上調用的是Java底層boolean java.util.List.removeAll(Collection c)的方法刪除集合。值得一提的是它可以刪除數組、JavaBean類型。
8.4. boolean removeAll(Collection collection, JsonConfig jsonConfig), 根據集合刪除元素, 并返回是否刪除成功/失敗, 只要刪除成功集合中的一個元素就返回成功。傳入了一個JsonConfig對象。事實上調用的是Java底層boolean java.util.List.removeAll(Collection c)的方法刪除集合。
8.5. remove方法相比discard更實用。
8.6. 創建JSONArrayRemove.java
package com.fj.ja;import java.util.ArrayList; import java.util.Arrays; 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;/*** JSONArray* 1. Object remove(int index), 根據下標刪除一個元素, 并返回刪除的元素, 只要下標存在可以刪除任何類型。* 2. boolean remove(Object o), 根據對象刪除一個對象, 并返回是否刪除成功/失敗, 可以刪除String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, 刪除不掉數組、JavaBean類型。* 3. boolean removeAll(Collection collection), 根據集合刪除元素, 并返回是否刪除成功/失敗, 只要刪除成功集合中的一個元素就返回成功。json-lib底層, 會創建一個JsonConfig對象使用。* 事實上調用的是Java底層boolean java.util.List.removeAll(Collection c)的方法刪除集合。值得一提的是它可以刪除數組、JavaBean類型。* 4. boolean removeAll(Collection collection, JsonConfig jsonConfig), 根據集合刪除元素, 并返回是否刪除成功/失敗, 只要刪除成功集合中的一個元素就返回成功。傳入了一個JsonConfig對象。* 事實上調用的是Java底層boolean java.util.List.removeAll(Collection c)的方法刪除集合。* 5. remove方法相比discard更實用。*/ public class JSONArrayRemove {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro"); // 添加String類型的值jsonArray.element(true); // 添加boolean類型的值jsonArray.element(5988); // 添加int類型的值jsonArray.element(2601010188703L); // 添加long類型的值jsonArray.element(6.58D); // 添加double類型的值jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串System.out.println(jsonArray);Object obj = jsonArray.remove(0); // 根據下標刪除一個元素, 并返回刪除的元素, 只要下標存在可以刪除任何類型// 根據對象刪除一個對象, 并返回是否刪除成功, 可以刪除String、boolean、int(轉成Integer)、long、double、JSONNull、Collection、Map、JSONObject類型, 刪除不掉數組、JavaBean類型。boolean deleteResult = jsonArray.remove(mainParam); System.out.println(jsonArray);System.out.println(obj);System.out.println(deleteResult);System.out.println(jsonArray.removeAll(Arrays.asList(sensor, mobileColor)));;System.out.println(jsonArray);System.out.println(jsonArray.removeAll(Arrays.asList(netJsonObject, jsonNull), new JsonConfig()));;System.out.println(jsonArray);} }8.7. 運行JSONArrayRemove.java
9. iterator方法
9.1. Iterator iterator()方法返回JSONArray的迭代器。
9.2. 創建JSONArrayIterator.java
package com.fj.ja;import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONNull; import net.sf.json.JSONObject;/*** JSONArray* 1. Iterator iterator()方法返回JSONArray的迭代器。*/ public class JSONArrayIterator {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element("HUAWEI P40 Pro"); // 添加String類型的值jsonArray.element(true); // 添加boolean類型的值jsonArray.element(5988); // 添加int類型的值jsonArray.element(2601010188703L); // 添加long類型的值jsonArray.element(6.58D); // 添加double類型的值jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串Iterator<?> it = jsonArray.iterator();while(it.hasNext()) {System.out.println(it.next());}} }9.3. 運行JSONArrayIterator.java
10. contains方法
10.1. boolean contains(Object o), 檢查JSONArray是否包含某對象, 如果包含返回true, 反之返回false。json-lib底層, 會創建一個JsonConfig對象使用。事實上調用的是Java底層boolean java.util.List.contains(Object o)的包含方法。
10.2. boolean contains(Object o, JsonConfig jsonConfig), 檢查JSONArray是否包含某對象, 如果包含返回true, 反之返回false。并指定一個JsonConfig。事實上調用的是Java底層boolean java.util.List.contains(Object o)的包含方法。
10.3. boolean containsAll(Collection collection), 檢查JSONArray是否包含集合的所有元素, 如果都包含返回true, 反之返回false。json-lib底層, 會創建一個JsonConfig對象使用。事實上調用的是Java底層boolean java.util.List.containsAll(Collection c)的包含方法。
10.4. boolean containsAll(Collection collection, JsonConfig jsonConfig), 檢查JSONArray是否包含集合的所有元素, 如果都包含返回true, 反之返回false。并指定一個JsonConfig。事實上調用的是Java底層boolean java.util.List.containsAll(Collection c)的包含方法。
10.5. 創建JSONArrayContains.java
package com.fj.ja;import java.util.ArrayList; import java.util.Arrays; 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;/*** JSONArray* 1. boolean contains(Object o), 檢查JSONArray是否包含某對象, 如果包含返回true, 反之返回false。json-lib底層, 會創建一個JsonConfig對象使用。* 事實上調用的是Java底層boolean java.util.List.contains(Object o)的包含方法。* 2. boolean contains(Object o, JsonConfig jsonConfig), 檢查JSONArray是否包含某對象, 如果包含返回true, 反之返回false。并指定一個JsonConfig。* 事實上調用的是Java底層boolean java.util.List.contains(Object o)的包含方法。* 3. boolean containsAll(Collection collection), 檢查JSONArray是否包含集合的所有元素, 如果都包含返回true, 反之返回false。json-lib底層, 會創建一個JsonConfig對象使用。* 事實上調用的是Java底層boolean java.util.List.containsAll(Collection c)的包含方法。* 4. boolean containsAll(Collection collection, JsonConfig jsonConfig), 檢查JSONArray是否包含集合的所有元素, 如果都包含返回true, 反之返回false。* 并指定一個JsonConfig。事實上調用的是Java底層boolean java.util.List.containsAll(Collection c)的包含方法。*/ public class JSONArrayContains {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().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");// JSONNullJSONNull jsonNull = JSONNull.getInstance();// 創建一個空的JSONArray對象JSONArray jsonArray = new JSONArray();jsonArray.element(mobileColor); // 添加數組類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(isp); // 添加集合類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(mainParam); // 添加Map類型的值, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(sensor); // 添加JavaBean對象類型的值, 被當作Object類型添加, 添加到JSONArray里面是JSONObject類型的值jsonArray.element(netJsonObject); // 添加JSONObject類型的值jsonArray.element(transferFunction); // 添加JSONArray類型的值, 被當作Collection類型添加, 添加到JSONArray里面是JSONArray類型的值jsonArray.element(jsonNull); // 添加JSONNull類型的值, 添加到JSONArray里面是"null"字符串System.out.println(jsonArray.contains(mobileColor)); // jsonArray是否包含mobileColor的對象System.out.println(jsonArray.contains(mainParam, new JsonConfig())); // jsonArray是否包含mainParam的對象System.out.println(jsonArray.containsAll(isp)); // jsonArray是否包含isp集合的所有元素System.out.println(jsonArray.containsAll(Arrays.asList(isp, sensor)));} }10.6. 運行JSONArrayContains.java
總結
以上是生活随笔為你收集整理的004_JSONArray对象公共方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 009_JSONFunction对象
- 下一篇: gradle idea java ssm