package com.javaweb.third.baidu.bean.imgClassify; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.javaweb.third.baidu.bean.BaseResult; import java.util.List; import java.util.Map; /** * 植物识别结果 * @author wujiyue */ public class PlantResult extends BaseResult { //{"log_id": 2269977770483958686, "result": [{"score": 0.99263727664948, "name": "月季花"}, {"score": 0.0021303170360625, "name": "香水月季"}, {"score": 0.0013882109196857, "name": "玫瑰"}, {"score": 0.00088617182336748, "name": "丰花月季"}, {"score": 0.00086312287021428, "name": "粉和平月季"}]} private boolean isPlant; /** * 认定为是植物的阈值概率 */ private Double plantProbability=0.7; /** *根据阈值概率最总认定为是那个植物名称 */ private String result_name; /** *定为是那个植物的概率 */ private Double result_probability; private List result; public PlantResult(String json){ this.setJson(json); try{ JSONObject jsonObject= JSONObject.parseObject(json); this.setLog_id(jsonObject.getString("log_id")); String e_code=String.valueOf(jsonObject.get("error_code")); if(notNull(e_code)){ this.setError_code(e_code); String e_msg=String.valueOf(jsonObject.get("error_msg")); this.setError_msg(e_msg); this.setRequestOk(false); }else { this.setRequestOk(true); List list = JSONArray.parseArray(jsonObject.get("result").toString(), Map.class); if(list!=null&&list.size()>0){ for(Map t:list){ String name=String.valueOf(t.get("name")); Double pro=Double.valueOf(String.valueOf(t.get("score"))); if((list.size()==1&&"非植物".equals(name))||(pro>=0.5 && "非植物".equals(name))){ isPlant=false; break; } if(pro>plantProbability){ isPlant=true; this.result_name=name; this.result_probability=pro; } } this.result=list; } } }catch (Exception ex){ ex.printStackTrace(); this.setRequestOk(false); this.setError_msg("解析json字符串出现异常!"); } } public static PlantResult create(String jsonStr) { return new PlantResult(jsonStr); } @Override public String toString() { if(isRequestOk()){ return "PlantResult{" + "isPlant=" + isPlant + ", result_name='" + result_name + '\'' + ", result_probability=" + result_probability + ", result=" + result + '}'; }else{ return getError_msg()+";错误代码["+getError_code()+"]"+";log_id["+getLog_id()+"]"; } } public boolean isPlant() { return isPlant; } public void setPlant(boolean isPlant) { this.isPlant = isPlant; } public Double getPlantProbability() { return plantProbability; } public void setPlantProbability(Double plantProbability) { this.plantProbability = plantProbability; } public String getResult_name() { return result_name; } public void setResult_name(String result_name) { this.result_name = result_name; } public Double getResult_probability() { return result_probability; } public void setResult_probability(Double result_probability) { this.result_probability = result_probability; } public List getResult() { return result; } public void setResult(List result) { this.result = result; } }