2021SC@SDUSC
我们来继续上周的分析,下面的方法是
SQLConfig newSQLConfig(RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure, Callback callback) throws Exception {}
这是一段长达400行代码的方法,从方法的名字可以看出,newSQLConfig是创建一个新的SQLConfig,传入的参数有RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure, Callback callback
我们来看第一段
if (request == null) { // User:{} 这种空内容在查询时也有效
throw new NullPointerException(TAG + ": newSQLConfig request == null!");
}
如果request为空,抛出一个NullPointerException
我们看到request的类型是JSONObject,
public class JSONObject extends com.alibaba.fastjson.JSONObject
该类型定义拓展了下包
com.alibaba.fastjson.JSONObject
知识学习
com.alibaba.fastjson.JSONObject
com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串、JSON对象,JSON串转成java对象、JSON对象,JSON对象转换Java对象、JSON串等
1、JSON的两种结构
JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。{
key1:value1,
key2:value2,
...
}
其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]使用方法总结如下
Java对象-->JSON对象
(JSONObject)JSONObject.toJSON(Java对象实例)
public class JSON2JavaTest{
public static void main(String[] args) {
Student stu = new Student("姓名", "m", 2);
//Java对象转化为JSON对象
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(stu);
System.out.println("Java对象转化为JSON对象\n" + jsonObject);//{"name":"姓名","age":2,"sex":"m"}
}}
2、认识JSON字符串
比如在js中。
字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };Java对象-->JSON字符串
JSONObject.toJSONString(Java对象实例)public class JSON2JavaTest{
public static void main(String[] args) {
Student stu = new Student("姓名", "m", 2);
//Java对象转换成JSON字符串
String stuString = JSONObject.toJSONString(stu);
System.out.println("Java对象转换成JSON字符串\n" + stuString);//{"age":2,"name":"姓名","sex":"m"}
}
}3、JSON对象-->JSON字符串
JSONObject.toJSONString();
public class JSON2JavaTest{