java - Android 中的复杂 JSON 解析 - 多对象和数组

标签 java android arrays json parsing

我目前正在为 Android 开发并使用一些人脸识别服务。该服务返回一些复杂的 JSON,如下所示;

编辑 - 正确的 JSON

{"photos":[{"url":"http:\/\/face.com\/images\/ph\/0b3ecef9a00b647570027e590b72c893.jpg","pid":"F@ddc704534bc71ad7271a1d07b95362ca_88f17d8482a3d3aac1d07b3062a3e29b","width":960,"height":637,"tags":[{"tid":"TEMP_F@ddc704534bc71ad7271a1d07b95362ca_88f17d8482a3d3aac1d07b3062a3e29b_54.06_45.53_1_1","recognizable":true,"threshold":59,"uids":[{"uid":"1@greene99","confidence":17}],"gid":null,"label":"","confirmed":false,"manual":false,"tagger_id":null,"width":19.58,"height":29.51,"center":{"x":54.06,"y":45.53},"eye_left":{"x":49.55,"y":38.8},"eye_right":{"x":58.4,"y":38.92},"mouth_left":{"x":49.82,"y":52.1},"mouth_center":{"x":54.77,"y":53.04},"mouth_right":{"x":58.36,"y":52.16},"nose":{"x":54.98,"y":46.3},"ear_left":null,"ear_right":null,"chin":null,"yaw":-7.59,"roll":2.27,"pitch":0.01,"attributes":{"age_est":{"value":18,"confidence":30},"age_max":{"value":24,"confidence":30},"age_min":{"value":12,"confidence":30},"face":{"value":"true","confidence":99},"gender":{"value":"female","confidence":41},"glasses":{"value":"false","confidence":73},"lips":{"value":"parted","confidence":63},"mood":{"value":"happy","confidence":61},"smiling":{"value":"true","confidence":48}}}]}],"status":"success","usage":{"used":1,"remaining":4999,"limit":5000,"reset_time_text":"Wed, 28 Mar 2012 14:20:08 +0000","reset_time":1332944408}}

我唯一需要获取的是 uids 数组内的 uid 值。尝试了几种方法都没有成功,有什么建议吗?

编辑 - 答案:)

String uid = new JSONObject(inputString).getJSONArray("photos").getJSONObject(0).getJSONArray("tags").getJSONObject(0).getJSONArray("uids").getJSONObject(0).getString("uid");

最佳答案

使用 json.org 库 ( http://www.json.org/java/index.html ) 尝试此示例:

String uid = new JSONObject(inputString).getJSONArray("photos").getJSONObject(0).getJSONArray("tags").getJSONObject(0).getJSONArray("uids").getJSONObject(0).getString("uid");

其中输入字符串是 JSON 的字符串表示形式。

关于java - Android 中的复杂 JSON 解析 - 多对象和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908557/

相关文章:

带有首字母缩略词的 Java 命名约定

java - 使用 Java Annotation 不运行方法

android被销毁时是否有任何 View 回调?

java - Android/Java抽象类继承问题

Android 录音来电和去电

java - 翻转存储为字节数组的图像

C:最大数,输出错误。兰德()

Java NIO FileChannel - 从 Android TUN 网络接口(interface)读取空值

javascript - 查找嵌套数组中的每个第一个数组

java - 使用 MyBatis Sql 查询在 Spring Boot 应用程序中选择别名列