1,自定义注解格式:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NeedJSONNullReplace {
}
2,注解实现类
public class JSONNullReplaceAdvice {
/**
* 用于在返回的时候,将jsonObject,jsonArray,ResultInfoVO中object中的jsonnull替换为“”;
* @param jp
* @param returnValue
* @throws Throwable
*/
public void afterReturning(JoinPoint jp, Object returnValue) throws Throwable {
if(returnValue instanceof JSONObject){
JSONObject obj = (JSONObject)returnValue;
returnValue = JSONUtil.JSONNullFilter(obj);
}else if(returnValue instanceof JSONArray){
JSONArray arr = (JSONArray)returnValue;
returnValue = JSONUtil.JSONNullFilter(arr);
}else if(returnValue instanceof ResultInfoVO){
Object obj = ((ResultInfoVO)returnValue).getObject();
if(obj instanceof JSONObject){
JSONObject jsonObj = (JSONObject)obj;
jsonObj = JSONUtil.JSONNullFilter(jsonObj);
}else if(obj instanceof JSONArray){
JSONArray jsonArr = (JSONArray)obj;
jsonArr = JSONUtil.JSONNullFilter(jsonArr);
}
}
}
}
3,面向切面配置
<bean id="j