JSON用的是fastjson,主要是根据json内的key,取出JSON串内对应的值转换成给定的实体类
其中使用了模板方法,方便后期做更多逻辑操作,具体代码如下:
@Component
@Slf4j
public abstract class AbstractWorkflowNodeTemplate {
public <T> T process(String jsonKey, String jsonObject, T data) {
return getNodeTemplate(jsonKey,jsonObject,data);
}
public abstract <T> T getNodeTemplate(String key, String obj, T data);
}
@Component
@Slf4j
public class AbstractWorkflowNodeTemplateMethod extends AbstractWorkflowNodeTemplate {
@Override
public <T> T getNodeTemplate(String jsonKey, String jsonObject, T data) {
JSONObject json = JSONObject.parseObject(jsonObject);
data = json.getObject(jsonKey, (Type) data.getClass());
return data;
}
}
测试案例:
```java
public String installMySql(JSONObject param) {
MiddleWareMysqlStep middleWareMysqlStep = abstractWorkflowNodeTemplate.process("installationSite", param.toJSONString(), new MiddleWareMysqlStep());
System.out.println(middleWareMysqlStep);
}