2021SC@SDUSC
分析前言对于APIJSON的代码分析首先就是,看一下该项目的作用以及如何进行,看一下原来不部署这个项目的正常流程:
再来看一下部署上APIJSON后项目的流程走向:
接下来开始按照这个流程对相应的代码进行分析。
AbstractParser类(解析器) 将request解析为JSON对象此次我们分析一下APIJSON的代码解析器——对应的项目类为AbstractParser
在 说明文档 中此类描述为 parser for parsing request to JSONObject,意思就是将request请求解析成为JSON对象,来看一下关键核心代码:
@Override
public String parse(String request) {
return JSON.toJSONString(parseResponse(request));
}
@NotNull
@Override
public String parse(JSONObject request) {
return JSON.toJSONString(parseResponse(request));
}
关键就是一个parse函数的调用将request转为固定的JSON类型的字符串,其中调用了parseResponse函数:
对于所用parseResponse函数:
public JSONObject parseResponse(String request) {
Log.d(TAG, "nnnn<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
而parseResponse(String)函数则是将request通过parseRequest转化为JOSNObject,这个是为了以后方便构造,然后再返回调用parseResponse(JSONObject)方法得到的JSON响应对象
对于所用函数parseRequest:
public static JSONObject parseRequest(String request) throws Exception {
JSONObject obj = JSON.parseObject(request);
if (obj == null) {
throw new UnsupportedEncodingException("JSON格式不合法!");
}
return obj;
}
就是调用了parseObject将String的request转化为JSONObject,并进行了异常处理
而JSON类的parseRequest函数最终是通过com.alibaba.fastjson的库函数最终将String转化为JSON类型的对象
以上 就是本次代码分析内容。



