如何在Java中正确解析嵌套JSON数组中的对象元素-java教程

本文详解java中使用org.json库解析复杂嵌套json结构的正确方法,重点纠正数组索引误用、类型强转错误等常见问题,并提供可运行的代码示例与关键注意事项。

在Java中解析JSON数据时,一个常见误区是混淆JSON对象(JSONObject)与JSON数组(JSONArray)的访问方式,尤其在处理类似 “user”: [{ “info”: { “name”: “user 1” } }] 这类嵌套结构时。原始代码中存在两处关键错误:

  1. 语法错误:提供的JSON字符串本身不符合标准JSON规范——键名 0 是非法的(JSON对象的键必须是双引号包裹的字符串,且不能为纯数字);
  2. 类型误判:jsonObject.getJSONArray(“user”).getJSONArray(0) 错误地将数组中的第一个元素(实际是 JSONObject)当作 JSONArray 处理,导致 ClassCastException 或 JSONException。

✅ 正确的JSON结构应如下(已修正):

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

对应的标准Java解析代码如下(使用 org.json 库):

import org.json.*;

String json_string = "{ \"info\": \"info\", \"user\": [{ \"info\": { \"name\": \"user 1\" } }] }";

JSONObject obj = new JSONObject(json_string);
JSONArray userArray = obj.getJSONArray("user");              // 获取 user 数组
JSONObject firstUser = userArray.getJSONObject(0);          // 取第0个元素 → JSONObject(不是 JSONArray!)
JSONObject userInfo = firstUser.getJSONObject("info");        // 进入 info 对象
String name = userInfo.getString("name");                   // 获取 name 字段值

System.out.println(name); // 输出:user 1

? 关键要点总结:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何在Java中正确解析嵌套JSON数组中的对象元素-java教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4009775+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4009775+
  • 本周更新: 0+
  • 最后更新: 2026-03-16