Json字符串反解析为对象的时候自动执行某些逻辑
- 对象定义中没有safUrlDesc字段
- 第三方接口返回的数据里有safUrlDesc字段
- 通过@JSONField注解映射到safUrlDesc字段然后注解修饰set方法,set方法会被自动执行,自动执行的逻辑中,可以编写解析safUrlDesc字段内容,然后给别的字段赋值的逻辑
核心代码
@JSONField(name = "safUrlDesc")
public void setSafUrlDesc(String safUrlDesc) {
if (safUrlDesc != null) {
Matcher timeoutMatcher = TIMEOUT_PATTERN.matcher(safUrlDesc);
if (timeoutMatcher.find()) {
this.timeout = parseLong(timeoutMatcher.group(1), "timeout");
}else{
this.isDefaultTimeout = true;
this.timeout = 5000L;
}
Matcher retriesMatcher = RETRIES_PATTERN.matcher(safUrlDesc);
if (retriesMatcher.find()) {
this.retries = parseInt(retriesMatcher.group(1), "retries");
}else {
this.retries = 0;
}
}
}
原创:做时间的朋友

浙公网安备 33010602011771号