1. JSONArray.fromObject静态方法
1.1. static JSONArray fromObject(Object object)静态方法, 把Java对象转换为JSONArray对象。json-lib底层, 会创建一个JsonConfig对象使用。
1.2. static JSONArray fromObject(Object object, JsonConfig jsonConfig)静态方法, 把Java对象转换为JSONArray对象。并指定一个JsonConfig。
1.3. 编写一个名叫JSONArrayStaticMethod的Java项目, 同时添加相关jar包。
1.4. 新建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;
}
@Override
public String toString() {
return "{weightSensor=" + weightSensor + ", fingerSensor=" + fingerSensor + ", otherSensor=" + otherSensor + "}";
}
}
1.5. 新建JSONArrayStaticFromObject.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.JsonConfig;
/**
* JSONArray
* 1. static JSONArray fromObject(Object object)静态方法, 把Java对象转换为JSONArray对象。json-lib底层, 会创建一个JsonConfig对象使用。
* 2. static JSONArray fromObject(Object object, JsonConfig jsonConfig)静态方法, 把Java对象转换为JSONArray对象。并指定一个JsonConfig。
*/
public class JSONArrayStaticFromObject {
public static void main(String[] args) {
// 数组
String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};
// 集合
List<String> isp = new ArrayList<String>(); // ISP网络服务提供商
isp.add("移动");
isp.add("联通");
isp.add("电信");
// Map
Map<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 Bean
Sensor sensor = new Sensor();
sensor.setWeightSensor(true);
sensor.setFingerSensor(true);
sensor.setOtherSensor("姿态感应器、色温传感器");
// Java Bean集合
List<Sensor> beanList = new ArrayList<Sensor>();
beanList.add(new Sensor(false, true, "姿态感应器、色温传感器"));
beanList.add(new Sensor(true, false, "姿态感应器、色温传感器"));
beanList.add(new Sensor(false, false, "姿态感应器、色温传感器"));
String jsonArrayStr = "[\"华为P40 Pro\",true,5988,2601010188703,6.58,[\"亮黑色\",\"冰霜银\",\"零度白\",\"深海蓝\",\"晨曦金\"],[\"移动\",\"联通\",\"电信\"],{\"mobileMemory\":\"128GB\",\"CPUCount\":\"八核\",\"CPUType\":\"HUAWEI Kirin 990 5G(麒麟990 5G)\",\"runtimeMemory\":\"8GB\"},{\"otherSensor\":\"姿态感应器、色温传感器\",\"weightSensor\":true,\"fingerSensor\":true},{\"5G\":\"移动5G(NR)/联通5G(NR)/电信5G(NR)\",\"4G\":\"移动/联通/电信4G主副卡 支持 TD-LTE/LTE FDD\",\"3G\":\"主卡: 联通3G(WCDMA)/电信3G(CDMA 2000); 副卡: 联通3G(WCDMA)\",\"2G\":\"主卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X); 副卡: 移动2G(GSM)/联通2G(GSM)/电信2G(CDMA 1X)\"},[\"NFC\",\"WLAN\"]]";
System.out.println(JSONArray.fromObject(mobileColor)); // 把数组转换为JSONArray对象
System.out.println(JSONArray.fromObject(isp, new JsonConfig())); // 把集合转换为JSONArray对象
System.out.println(JSONArray.fromObject(mainParam)); // 把Map转换为JSONArray对象
System.out.println(JSONArray.fromObject(sensor)); // 把Java Bean转换为JSONArray对象
System.out.println(JSONArray.fromObject(beanList)); // 把Java Bean集合转换为JSONArray对象
System.out.println(JSONArray.fromObject(jsonArrayStr)); // 把JSON Array String对象转换为JSONArray对象
}
}
1.6. 运行JSONArrayStaticFromObject.java
2. JSONArray.toList静态方法
2.1. static List toList(JSONArray jsonArray, Object root, JsonConfig jsonConfig)静态方法, 从JSONArray创建一个集合。
2.2. 第二个参数传入对象, 如果jsonArray里有JSON对象数据的话, 根据对象的类创建新对象, 封装数据到新对象里。
2.3. 第三个参数传入一个JSONConfig对象, JSONConfig可以设置一个ClassMap, 倘若JSON对象里还有JSON对象, 可以根据ClassMap来进行键和值的类型匹配。
2.4. 新建JSONArrayStaticToList.java(toList静态方法, 第二个参数传入HashMap对象)
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.JsonConfig;
/**
* JSONArray
* 1. JSONArray.toList(JSONArray jsonArray, Object root, JsonConfig jsonConfig)静态方法, 从JSONArray创建一个集合。
* 2. 第二个参数传入对象, 如果jsonArray里有JSON对象数据的话, 根据对象的类创建新对象, 封装数据到新对象里。
* 3. 第三个参数传入一个JSONConfig对象, JSONConfig可以设置一个ClassMap, 倘若JSON对象里还有JSON对象, 可以根据ClassMap来进行键和值的类型匹配。
*/
public class JSONArrayStaticToList {
public static void main(String[] args) {
// 数组
String[] mobileColor = {"亮黑色", "冰霜银", "零度白", "深海蓝", "晨曦金"};
// 集合
List<String> isp = new ArrayList<String>(); // ISP网络服务提供商
isp.add("移动");
isp.add("联通");
isp.add("电信");
// Java Bean