post提交:
{"tableName":"(表名)","field":"(列名)","where":"(查询条件)","DBJson":{"url":"jdbc:(数据库地址)?characterEncoding=UTF-8" ,"username":"","password":""}}
所获取的列的形式:
{"success":"true","detail":{"check":"X50380缺失”,"code":"002","result":[{"notHappenProbability":0.99203277,"rejectionRate":0.6595714,"score":65.957146,"trainDataVersion":"100"}]}}
目的:获取json中的score对应的分值
java代码:
String url= params.get("body").replaceAll("%(?![0-9a-fA-F]{2})", "%25");
param = URLDecoder.decode(url, "utf-8").trim();
JSONObject json=JSONObject.fromObject(param);
String dataName = json.getString("tableName");
String where = json.getString("where");
BatchService batchService = (BatchService)MyBeanFactory.getService("batchService");
JSONObject DBJson=json.getJSONObject("DBJson");
String field=json.getString("field");
List<JSONObject> findtPayment = batchService.findtPayment(dataName, where, DBJson);
List<String> ScoreList=new ArrayList<>();
for(JSONObject jParam:findtPayment){
final JSONObject jsonObject= jParam.getJSONObject(field).has("params")?
jParam.getJSONObject(field).getJSONObject("params"):jParam.getJSONObject(field);
if (jsonObject.getString("success").equals("true")) {
JSONObject detail=jsonObject.getJSONObject("detail");
if (detail.has("result")) {
JSONArray resultArray=detail.getJSONArray("result");
for(int i=0;i<resultArray.size();i++){
JSONObject object=resultArray.getJSONObject(i);
String score=object.getString("score");
ScoreList.add(score);
}
}
}
}
注意:根据json格式写判断条件,我的json列里面有打分不成功的情况,并且success=true之后还有可能出现打分失败没有result的情况,所以添加了判断条件。