/** * @Title: Json_Parsing.java * @Package org.util * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2018-6-9 上午10:33:48 * @blog https://blog.csdn.net/qq_34137397 * @version V1.0 */ package org.util; import java.util.ArrayList; import org.entity.Landmark; import org.json.JSONArray; import org.json.JSONObject; /** * * 项目名称:test_face_huoti * 类名称:Json_Parsing * 类描述: 解析json * 创建人:Mu Xiongxiong * 创建时间:2018-6-9 上午10:33:48 * 修改人:Mu Xiongxiong * 修改时间:2018-6-9 上午10:33:48 * 修改备注: * 个人博客:https://blog.csdn.net/qq_34137397 * @version * */ public class Json_Parsing { /*String json_str = "{" +" \"timestamp\": 1528420653," +" \"result\": {" +"\"face_list\": [{" +"\"landmark\": [" +" {" +" \"y\": 293.6487427," +" \"x\": 344.6775208" +" }," +"{" +" \"y\": 292.1832581," +" \"x\": 465.147522" +"}," +"{" +" \"y\": 362.4373169," +" \"x\": 407.2205811" +" }," +" {" +" \"y\": 428.7177124," +" \"x\": 411.6735535" +" }" +"]," +" \"face_probability\": 0.9377777576," +" \"location\": {" +" \"height\": 253," +" \"rotation\": 0," +" \"width\": 243," +" \"left\": 289.150177," +" \"top\": 244.4544983" +"}," +"\"landmark72\": [" +" {" +" \"y\": 292.0180054," +"\"x\": 289.417572" +"}," +"{" +" \"y\": 331.9599609," +"\"x\": 292.8039246" +" }," +" {" +" \"y\": 372.3904114," +" \"x\": 301.283844" +"}," +" {" +" \"y\": 411.2714233," +" \"x\": 314.0955505" +" }," +" {" +" \"y\": 450.2736206," +" \"x\": 338.0390625" +" }," +" {" +" \"y\": 484.864502," +" \"x\": 376.0628662" +" }," +"{" +" \"y\": 496.4431152," +"\"x\": 415.7805176" +"}," +"{" +" \"y\": 487.0181274," +" \"x\": 455.3654175" +"}," +"{" +" \"y\": 454.7385559," +" \"x\": 492.2065735" +" }," +" {" +" \"y\": 412.9674377," +" \"x\": 516.8792725" +"}," +"{" +"\"y\": 371.8327026," +"\"x\": 526.5441284" +"}," +"{" +"\"y\": 330.3126831," +" \"x\": 531.1585693" +" }," +"{" +"\"y\": 289.8967896," +"\"x\": 532.8815918" +"}," +"{" +"\"y\": 295.760498," +"\"x\": 318.7453003" +"}," +"{" +" \"y\": 290.3188171," +" \"x\": 331.4337769" +" }," +"{" +"\"y\": 288.857605," +"\"x\": 344.0565186" +"}," +"{" +"\"y\": 289.964447," +"\"x\": 357.3381348" +"}," +"{" +"\"y\": 297.0440674," +"\"x\": 370.2176819" +"}," +"{" +"\"y\": 299.0540771," +"\"x\": 357.6977844" +"}," +"{" +"\"y\": 300.6704102," +"\"x\": 344.3751831" +"}," +"{" +"\"y\": 299.0969849," +" \"x\": 331.1411133" +" }," +"{" +"\"y\": 293.6487427," +"\"x\": 344.6775208" +" }," +"{" +" \"y\": 265.6499634," +" \"x\": 303.0313721" +" }," +" {" +" \"y\": 245.9210663," +" \"x\": 320.273468" +" }," +" {" +" \"y\": 243.7492371," +" \"x\": 342.8881226" +" }," +"{" +" \"y\": 247.8726349," +"\"x\": 365.1636963" +"}," +"{" +" \"y\": 263.4034729," +" \"x\": 384.873291" +" }," +"{" +" \"y\": 264.3016357," +"\"x\": 364.7226562" +"}," +"{" +" \"y\": 263.662384," +"\"x\": 343.1068115" +" }," +" {" +" \"y\": 264.1619568," +" \"x\": 321.9691772" +"}," +" {" +" \"y\": 295.9424133," +" \"x\": 440.2758179" +"}," +"{" +"\"y\": 288.9544373," +" \"x\": 453.3082581" +" }," +"{" +" \"y\": 287.5550232," +" \"x\": 466.5764771" +" }," +" {" +" \"y\": 288.9812317," +" \"x\": 480.1110229" +"}," +"{" +"\"y\": 293.90625," +"\"x\": 493.8017883" +"}," +"{" +"\"y\": 298.0003357," +"\"x\": 480.5523987" +"}," +"{" +"\"y\": 299.4595032," +" \"x\": 466.5645752" +" }," +" {" +" \"y\": 298.1081543," +"\"x\": 452.7465515" +"}," +" {" +"\"y\": 292.1832581," +"\"x\": 465.147522" +"}," +"{" +"\"y\": 263.0756226," +"\"x\": 424.7915039" +" }," +" {" +" \"y\": 246.7488251," +" \"x\": 444.5397644" +"}," +"{" +" \"y\": 242.2443085," +" \"x\": 468.00177" +" }," +"{" +" \"y\": 244.3013611," +" \"x\": 492.2993469" +" }," +"{" +" \"y\": 264.5846252," +" \"x\": 512.2473755" +" }," +"{" +"\"y\": 262.5867615," +"\"x\": 490.7645874" +"}," +"{" +"\"y\": 261.9186096," +"\"x\": 468.2220459" +" }," +"{" +"\"y\": 262.9295349," +"\"x\": 446.1036377" +"}," +"{" +" \"y\": 297.6395569," +"\"x\": 387.9335022" +" }," +"{" +"\"y\": 323.2550659," +"\"x\": 383.4273071" +"}," +"{" +" \"y\": 348.6310425," +" \"x\": 378.8557739" +"}," +"{" +"\"y\": 377.025116," +" \"x\": 371.0310364" +" }," +"{" +"\"y\": 378.413269," +" \"x\": 388.319519" +"}," +" {" +" \"y\": 377.3381958," +" \"x\": 429.2042236" +" }," +" {" +" \"y\": 374.605896," +"\"x\": 447.5372314" +"}," +"{" +" \"y\": 346.7474365," +"\"x\": 436.0992737" +"}," +"{" +" \"y\": 321.6994629," +" \"x\": 429.4744873" +" }," +"{" +" \"y\": 296.7819824," +" \"x\": 422.7367249" +" }," +"{" +" \"y\": 362.4373169," +" \"x\": 407.2205811" +" }," +"{" +" \"y\": 426.7028503," +" \"x\": 364.6296387" +" }," +" {" +" \"y\": 415.4924927," +"\"x\": 385.1811523" +"}," +" {" +"\"y\": 414.2524414," +"\"x\": 410.7074585" +" }," +"{" +" \"y\": 415.1342468," +" \"x\": 436.9920044" +" }," +"{" +"\"y\": 424.9750366," +"\"x\": 461.309082" +"}," +"{" +" \"y\": 442.3902588," +"\"x\": 440.663147" +" }," +"{" +"\"y\": 449.1212158," +" \"x\": 411.6611328" +"}," +"{" +" \"y\": 442.7553711," +" \"x\": 384.1807556" +"}," +"{" +" \"y\": 426.5587769," +" \"x\": 386.5618896" +"}," +" {" +"\"y\": 427.7996826," +"\"x\": 411.2698364" +"}," +"{" +"\"y\": 425.5678711," +"\"x\": 435.7932434" +"}," +"{" +" \"y\": 429.5809326," +" \"x\": 436.4645996" +" }," +" {" +" \"y\": 431.8244629," +" \"x\": 410.9641724" +"}," +"{" +"\"y\": 429.8924866," +"\"x\": 387.0514832" +" }" +" ]," +"\"face_token\": \"1d3c6176c74239cda6fae09bc703b4b5\"," +" \"angle\": {" +" \"yaw\": 0.8733408451," +"\"roll\": -0.6557160616," +"\"pitch\": 3.743157148" +"}" +"}]," +" \"face_num\": 1" +"}," +" \"cached\": 0," +"\"error_code\": 0," +" \"log_id\": 3506632814," +"\"error_msg\": \"SUCCESS\"" +"}";*/ /** * * @Description: 该方法的主要作用:解析人脸检测的json数据 * @Title: parsingFaceJson * @param @param json_str * @param @return 设定文件 * @return 返回类型:Landmark * @throws * 个人博客:https://blog.csdn.net/qq_34137397 */ @SuppressWarnings("serial") public static Landmark parsingFaceJson(JSONObject json_str){ Landmark landmark = new Landmark(); //开始解析json //JSONObject dataJson=new JSONObject(json_str); //找到result节点 JSONObject response_result=json_str.getJSONObject("result"); //继续找face_list节点 JSONArray face_list_jsonArray=response_result.getJSONArray("face_list"); JSONObject face_list_jsonObject=face_list_jsonArray.getJSONObject(0); //找到landmark(关键点)节点,4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心 final JSONArray landmark_jsonArray=face_list_jsonObject.getJSONArray("landmark"); //左眼中心 landmark.setLeft_eye_zhongxin(new ArrayList<Double>(){ {add((Double) landmark_jsonArray.getJSONObject(0).get("y")); add((Double) landmark_jsonArray.getJSONObject(0).get("x"));} }); //右眼中心 landmark.setRight_eye_zhongxin(new ArrayList<Double>(){ {add((Double) landmark_jsonArray.getJSONObject(1).get("y")); add((Double) landmark_jsonArray.getJSONObject(1).get("x"));} }); //鼻尖 landmark.setNose_zhongxin(new ArrayList<Double>(){ {add((Double) landmark_jsonArray.getJSONObject(2).get("y")); add((Double) landmark_jsonArray.getJSONObject(2).get("x"));} }); //嘴中心 landmark.setMouse_zhongxin(new ArrayList<Double>(){ {add((Double) landmark_jsonArray.getJSONObject(3).get("y")); add((Double) landmark_jsonArray.getJSONObject(3).get("x"));} }); //继续找landmark72节点 final JSONArray landmark72_jsonArray=face_list_jsonObject.getJSONArray("landmark72"); //左眼上边 landmark.setLeft_eye_top(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(14).get("y")); add((Double) landmark72_jsonArray.getJSONObject(14).get("x"));} }); //左眼下边 landmark.setLeft_eye_bottom(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(19).get("y")); add((Double) landmark72_jsonArray.getJSONObject(19).get("x"));} }); //右眼上边 landmark.setRight_eye_top(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(32).get("y")); add((Double) landmark72_jsonArray.getJSONObject(32).get("x"));} }); //右眼下边 landmark.setRight_eye_bottom(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(36).get("y")); add((Double) landmark72_jsonArray.getJSONObject(36).get("x"));} }); //嘴巴上边 landmark.setMouse__top(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(60).get("y")); add((Double) landmark72_jsonArray.getJSONObject(60).get("x"));} }); //嘴巴下边 landmark.setMouse__bottom(new ArrayList<Double>(){ {add((Double) landmark72_jsonArray.getJSONObject(70).get("y")); add((Double) landmark72_jsonArray.getJSONObject(70).get("x"));} }); return landmark; } }