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