读取json类型的配置文件

@Slf4j
@Component
public class JobsJson {
    //加载各个领域的配置文件,打包时指定领域
    @Value("${com.scheduler.jobs}")
    private String fileName;
    //json解析器
    @Autowired
    private ObjectMapper mapper;

    /**
     * 读取配置文件中job信息。
     * @return
     */
    public List getJobs(){
        try {
            String strJob = readConf();
            if (strJob.isEmpty()){
                log.info("strJob is empty.");
                return null;
            }
            return mapper.readValue(strJob, new TypeReference>() {});
        }
        catch (Exception e){
            log.error(""+e);
            return null;
        }
    }

    /**
     * 通过配置文件读取需要执行的任务。
     * @return 异常为null
     */
    private String readConf() {
        InputStream stream = getClass().getClassLoader().getResourceAsStream(fileName);
        return inStreamToStr(stream);
    }

    /**
     * 流转换为string
     * @param is 输入流
     * @return 转换后的字符串,异常为null
     */
    private String inStreamToStr(InputStream is){
        BufferedReader in = new BufferedReader(new InputStreamReader(is));
        StringBuffer buffer = new StringBuffer();
        try {
            String line = "";
            while ((line = in.readLine()) != null){
                buffer.append(line);
            }
            return buffer.toString();
        }catch (IOException e){
            log.error(""+e);
            return null;
        }
    }
}

1

JSONObject thisEle = dataInit.getJSONObject(interfaceCode);
String option = thisEle.getString("OPTION");
StringBuffer sql = new StringBuffer();
sql.append("select ");
JSONArray selectKeys = thisEle.getJSONArray("SELECT_KEYS");
JSONObject keys = thisEle.getJSONObject("KEYS");
//拼接查询字段
for(int i = 0;i < selectKeys.size();i++){
   JSONObject obj = selectKeys.getJSONObject(i);
   String code = obj.getString("code");
   String name = obj.getString("name");
   String title = obj.getString("title");
   params.put(name, title);
   if(i > 0){
      sql.append(",");
   }
   sql.append(" a.").append(code).append(" `").append(name).append("`");
}

2

JsonArray array = new JsonArray();
array = addSchedConfig2(array, "config/aws_scheduled.json");
array = addSchedConfig2(array, "config/radar_scheduled.json");
array = addSchedConfig2(array, "config/sate_scheduled.json");
array = addSchedConfig2(array, "config/disaster_scheduled.json");
array = addSchedConfig2(array, "config/warning_scheduled.json");

if(array!=null&&array.size()>0) {
   dao.deleteAllJob();
   for (int i = 0; i < array.size(); i++) {
      JsonObject jo = array.get(i).getAsJsonObject();
      JobSchedulerInfo job = new JobSchedulerInfo();
      job.setId(i+"");
      job.setJobClassName(jo.get("class_name").getAsString());
      job.setCronExpression(jo.get("cron").getAsString());
      job.setState(jo.get("state").getAsString());
      job.setType(jo.get("type")==null?null:jo.get("type").getAsString());         
      job.setParameters(jo.get("parameters")==null?null:jo.get("parameters").getAsJsonObject().toString());
      job.setDesc(jo.get("desc")==null?null:jo.get("desc").getAsString());
      dao.addJob(job);
   }
   // 项目启动加载定时任务
   init.initTimeJob();
}  

你可能感兴趣的:(java,spring,boot)