百度AI 人脸识别 解析返回类型为json的result

百度AI人脸识别

百度人脸识别接口分为V2和V3两个版本,本博为V3版本的说明。

参考链接博客(链接在文章后面)可以进行百度ai人脸识别前面的布置步骤。

在前篇中,然后百度会把你的请求值通过json的形式返回result给你。

在百度的FaceDect.java文件中

String imgstr = Base64Util.encode(fileContent);
            map.put("image", imgstr);
            map.put("face_field", "faceshape,facetype,beauty,age");
            map.put("image_type", "BASE64");

通过第二行的map.put()里面加百度提供的参数如beauty,int可以得到百度相关的返回值。如图:
在这里插入图片描述
百度相关链接为https://ai.baidu.com/docs#/Face-Detect-V3/5875a6ec

在加完参数后,
我们可以看到百度的返回值如下:在这里插入图片描述

返回值result为json类型。如果我们想用到result里面的值的话,就必须解析json

json解析分为纯对象,和数组类型,和混合类型。百度这种属于混合类型的解析。

纯对象属于JSONObejct解析;如下:

                JSONObject json1 = new JSONObject(result1);
                String face_list1 = json1.getString("face_list");
                System.out.println("face_list1="+face_list1);

数组型属于JSONArray解析,如下:

JSONArray json2 = new JSONArray(face_list1);
                int length1 = json2.length();
                for(int n=0;n<length1;n++) {
                	 string = json2.getString(n);
                	System.out.println("string="+string);
                }

对于百度返回的混合类型,就需要一步步慢慢来了,需要足够的耐心。
我们可以先把百度的返回值复制粘贴到记事本,自己先看一下,用隔行来分开。
在这里插入图片描述
分析清楚后再解析。
相关百度ai的json解析的代码如下:

String result = HttpUtil.post(url, accessToken, "application/json", param);
                System.out.println("111result="+result);
                JSONObject jsonObject = new JSONObject(result);
                String result1 = jsonObject.getString("result");
                System.out.println("result1="+result1);
                
                JSONObject json1 = new JSONObject(result1);
                String face_list1 = json1.getString("face_list");
                System.out.println("face_list1="+face_list1);
                
                JSONArray json2 = new JSONArray(face_list1);
                int length1 = json2.length();
                for(int n=0;n<length1;n++) {
                	 string = json2.getString(n);
                	System.out.println("string="+string);
                }
                
                JSONObject json3 = new JSONObject(string);
                String face_shape = json3.getString("face_shape");
                System.out.println("face_shape="+face_shape);
                String face_type = json3.getString("face_type");
                System.out.println("face_type="+face_type);
                String location = json3.getString("location");
                System.out.println("location="+location);
                String angle = json3.getString("angle");
                System.out.println("angel="+angle);
                String beauty = json3.getString("beauty");
                System.out.println("beauty="+beauty);
                String age = json3.getString("age");
                System.out.println("age="+age);
                String face_probability = json3.getString("face_probability");
                System.out.println("face_probability="+face_probability);

效果如下,达到解析的目的。

注意:1.如果符号是[ ],则使用JSONObeject解析。
2.如果符号是{ },则用JSONArray解析。

在这里插入图片描述
然后自己就可以得到自己想用的值了。
前期步骤为:https://blog.csdn.net/weixin_44694178/article/details/97404694
第一次解析json。。。
博客内容如有错误,麻烦指正。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值