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

使用org.json库解析根为数组的JSON响应报错该如何处理

问题原因与解决方案

你遇到的报错本质是org.json库识别到传入的字符串开头不符合JSON结构的语法要求,按以下顺序排查即可:

  • 第一步:先打印原始jsonString的完整内容,确认两个问题:
    1. 是否存在不可见前缀(比如UTF-8 BOM头、多余的空格/换行/特殊字符),导致第一个字符不是[
    2. 是否保留了HTML转义符(比如示例中的"没有被还原为正常双引号")
  • 第二步:处理异常字符
    如果是存在多余前缀,先截取从第一个[开始的子串:
    // 裁剪掉[之前的所有无效字符
    int arrayStartPos = jsonString.indexOf('[');
    if (arrayStartPos != -1) {
        jsonString = jsonString.substring(arrayStartPos);
    }
    
    如果是存在HTML转义符,先做转义还原:
    // 替换转义的双引号,其他转义符可按需补充替换规则
    jsonString = jsonString.replace(""", "\"");
    
  • 第三步:正确解析JSON数组
    你的响应最外层本身就是JSON数组,不需要转换为JSONObject,也不需要额外调用getJSONArray(0),处理完字符串后直接解析即可:
    JSONArray jsonArray = new JSONArray(jsonString);
    // 遍历数组读取元素示例
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject item = jsonArray.getJSONObject(i);
        int id = item.getInt("Id");
        String name = item.getString("N");
        // 按需读取其他字段
    }
    

内容的提问来源于stack exchange,提问作者R. Tayyip Barbaros

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:24:03