package com.javaweb.third.baidu.bean.face; 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 FaceDetectResult extends BaseResult { private Integer face_num; private List face_list; /** *如果只有一张人脸 把下面属性填充值方便读取 */ private String face_token; /** * left、top、width、height */ private Map location; /** * yaw三维旋转之左右旋转角[-90(左), 90(右)] pitch三维旋转之俯仰角度[-90(上), 90(下)] roll平面内旋转角[-180(逆时针), 180(顺时针)] */ private Map angle; /** * 平面内旋转角[-180(逆时针), 180(顺时针)] angel.roll */ private Double roll; /** *年龄 */ private Integer age; /** *颜值 */ private Double beauty; /** *表情 */ private String expression; /** *性别 */ private String gender; /** *民族 */ private String race; /** *是否戴眼镜 */ private boolean hasGlasses; //{"error_code":0,"error_msg":"SUCCESS","log_id":2810389254,"timestamp":1529551857,"cached":0,"result":{"face_num":1,"face_list":[{"face_token":"40b86d590f87c6e1b177e8b93c6a6376","location":{"left":119.9293823,"top":119.4915924,"width":90,"height":103,"rotation":14},"face_probability":1,"angle":{"yaw":-17.01270103,"pitch":-1.34694922,"roll":10.41974068},"age":22,"beauty":68.86720276,"expression":{"type":"smile","probability":0.974437952},"gender":{"type":"female","probability":0.9999629259},"glasses":{"type":"none","probability":0.9999988079},"race":{"type":"yellow","probability":0.9999338388}}]}} public FaceDetectResult(String jsonStr){ this.setJson(jsonStr); try{ JSONObject jsonObject= JSONObject.parseObject(jsonStr); String e_code=String.valueOf(jsonObject.get("error_code")); String e_msg=String.valueOf(jsonObject.get("error_msg")); this.setLog_id( String.valueOf(jsonObject.get("log_id"))); if(!"0".equals(e_code)&&!"SUCCESS".equals(e_msg)){ this.setError_code(e_code); this.setError_msg(e_msg); this.setRequestOk(false); }else{ this.setRequestOk(true); JSONObject result_json=jsonObject.getJSONObject("result"); this.face_num=result_json.getInteger("face_num"); this.face_list = JSONArray.parseArray(result_json.get("face_list").toString(), Map.class); if(face_list!=null&&face_list.size()>0){ Map tmap = face_list.get(0); if(tmap!=null){ this.face_token = (String) tmap.get("face_token"); this.location= JSONObject.parseObject(String.valueOf(tmap.get("location")),Map.class); this.angle= JSONObject.parseObject(String.valueOf(tmap.get("angle")),Map.class); this.roll=Double.valueOf(String.valueOf(angle.get("roll"))); this.age = (Integer) tmap.get("age"); this.beauty =Double.valueOf(String.valueOf(tmap.get("beauty"))); this.expression=(String)(JSONObject.parseObject(String.valueOf(tmap.get("expression")),Map.class).get("type")); this.gender=(String)(JSONObject.parseObject(String.valueOf(tmap.get("gender")),Map.class).get("type")); this.race=(String)(JSONObject.parseObject(String.valueOf(tmap.get("race")),Map.class).get("type")); this.hasGlasses="none".equals((String)(JSONObject.parseObject(String.valueOf(tmap.get("glasses")),Map.class).get("type")))?false:true; } } } }catch (Exception ex){ ex.printStackTrace(); this.setRequestOk(false); this.setError_msg("解析json字符串出现异常!"); } } public static FaceDetectResult create(String jsonStr) { return new FaceDetectResult(jsonStr); } public Integer getFace_num() { return face_num; } public void setFace_num(Integer face_num) { this.face_num = face_num; } public List getFace_list() { return face_list; } public void setFace_list(List face_list) { this.face_list = face_list; } public String getFace_token() { return face_token; } public void setFace_token(String face_token) { this.face_token = face_token; } public Map getLocation() { return location; } public void setLocation(Map location) { this.location = location; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Double getBeauty() { return beauty; } public void setBeauty(Double beauty) { this.beauty = beauty; } public String getExpression() { return expression; } public void setExpression(String expression) { this.expression = expression; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getRace() { return race; } public void setRace(String race) { this.race = race; } public boolean isHasGlasses() { return hasGlasses; } public void setHasGlasses(boolean hasGlasses) { this.hasGlasses = hasGlasses; } public Map getAngle() { return angle; } public void setAngle(Map angle) { this.angle = angle; } public Double getRoll() { return roll; } public void setRoll(Double roll) { this.roll = roll; } @Override public String toString() { return "FaceDetectResult{" + "face_num=" + face_num + ", face_list=" + face_list + ", face_token='" + face_token + '\'' + ", location=" + location + ", angle=" + angle + ", roll=" + roll + ", age=" + age + ", beauty=" + beauty + ", expression='" + expression + '\'' + ", gender='" + gender + '\'' + ", race='" + race + '\'' + ", hasGlasses=" + hasGlasses + '}'; } }