问题
- 在获取传入的JSON数据时,获取JSON中可能不包含的字段,会出现异常
解决
- 在获取传入的JSON数据时,如果要获取其中的某个字段,需要先进行判断该字段是否存在
- 使用com.alibaba.fastjson的JSONObejct类判断某个字段是否存在
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(entity));
// 判断JSON中是否包含该字段,如果包含该字段再进行其余操作
if (jsonObject.containsKey("filedKey")) {
...
}
解决
参数校验规则
需要进行参数校验
-
对外提供的开放接口. 无论是RPC,API还是HTTP接口
- 敏感权限入口
- 需要极高稳定性和可用性的方法
- 调用频次低的方法
-
执行开销很大的方法:
- 参数校验的时间可以忽略不计
- 如果因为参数错误会导致中间执行被退回或者错误时代价很大
不需要进行参数校验
- 可能被循环调用的方法不需要进行参数校验,但是需要在方法说明中注明外部参数的检查要求
- 声明为private的方法,只会被本身类的代码调用:
- 如果已经确定调用的方法代码传入参数已经做过检查或者肯定不会有问题,则不需要进行参数校验
- 底层调用频度比较高的方法