You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取嵌套JSONObject的值?请教contour_chin->x的取值方法

获取嵌套JSON中contour_chin的x值方法

没问题,我来帮你拆解这个嵌套JSON的取值逻辑,其实只要跟着层级一步步深入就能拿到目标值,我给你分步骤说明并附上代码示例:

先理清JSON的层级结构

你的JSON结构简化后是这样的:

{
"faces": [
{
"landmark": {
"contour_chin": { "y": 231, "x": 137 },
// 其他省略字段
}
}
],
// 其他顶层字段
}

核心层级路径:顶层对象 → faces数组(取第一个元素) → landmark对象 → contour_chin对象 → x字段

代码示例(以Java的org.json库为例)

这是后端/Android场景最常用的处理方式:

// 假设你的原始JSON字符串为jsonStr
JSONObject rootObj = new JSONObject(jsonStr);

// 1. 获取faces数组,取出第一个face对象(你的示例里只有一个face)
JSONArray facesArray = rootObj.getJSONArray("faces");
JSONObject firstFace = facesArray.getJSONObject(0);

// 2. 取出landmark嵌套对象
JSONObject landmarkObj = firstFace.getJSONObject("landmark");

// 3. 取出contour_chin对象,最后获取x值
JSONObject contourChin = landmarkObj.getJSONObject("contour_chin");
int chinX = contourChin.getInt("x");

// 输出结果,这里会打印137
System.out.println("contour_chin的x值:" + chinX);

安全取值(避免空指针/字段不存在异常)

如果担心数据可能存在缺失(比如faces数组为空、某个字段不存在),可以加判断逻辑:

if (rootObj.has("faces")) {
    JSONArray facesArray = rootObj.getJSONArray("faces");
    if (!facesArray.isEmpty()) {
        JSONObject firstFace = facesArray.getJSONObject(0);
        if (firstFace.has("landmark")) {
            JSONObject landmarkObj = firstFace.getJSONObject("landmark");
            if (landmarkObj.has("contour_chin")) {
                JSONObject contourChin = landmarkObj.getJSONObject("contour_chin");
                if (contourChin.has("x")) {
                    int chinX = contourChin.getInt("x");
                    System.out.println("contour_chin的x值:" + chinX);
                }
            }
        }
    }
}

前端JavaScript场景示例

如果是前端处理这个JSON,写法更简洁:

// 假设已将JSON字符串解析为对象jsonData
const chinX = jsonData.faces[0].landmark.contour_chin.x;
console.log(chinX); // 输出137

// 安全取值(用可选链操作符,避免报错)
const safeChinX = jsonData?.faces?.[0]?.landmark?.contour_chin?.x;

内容的提问来源于stack exchange,提问作者Park Soo Mi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:13:10