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

Java中如何正确选取复杂JSON数组中的元素?

问题解决步骤

1. 先修复JSON语法错误

你提供的JSON存在语法问题,无法被正常解析,具体问题:

  • 键名0未加双引号,JSON要求所有键必须是带双引号的字符串
  • 键值对格式错误,0:后直接跟"info":{...}不符合JSON结构

根据代码意图,提供两种修正方案:

方案A:若user数组元素是包含0键的对象

{
    "info": "info",
    "user": [
        {
            "0": {
                "info": {
                    "name": "user 1"
                }
            }
        }
    ]
}

方案B:若user数组元素直接是包含info的对象(更合理的结构)

{
    "info": "info",
    "user": [
        {
            "info": {
                "name": "user 1"
            }
        }
    ]
}

2. 修正代码逻辑

你的代码错误地多次使用getJSONArray(),但实际上user数组的元素是JSONObject,info也是JSONObject,并非数组。

对应方案A的代码

JSONObject jsonObject = new JSONObject(json_string);
System.out.println(jsonObject.getJSONArray("user")
                            .getJSONObject(0)
                            .getJSONObject("0")
                            .getJSONObject("info")
                            .getString("name"));

对应方案B的代码(更简洁)

JSONObject jsonObject = new JSONObject(json_string);
System.out.println(jsonObject.getJSONArray("user")
                            .getJSONObject(0)
                            .getJSONObject("info")
                            .getString("name"));

内容的提问来源于stack exchange,提问作者Igor Ostapenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:40:49