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

Android将PHP返回的JSON字符串转为JSONArray报错如何解决?

解答

JSON格式校验

你收到的响应JSON格式完全合法,不存在格式错误。抛出异常的核心原因是:你返回的JSON顶层结构是JSONObject(大括号{}包裹),不是你代码里尝试转换的JSONArray(中括号[]包裹)。

正确解析代码

你需要先将响应字符串转为JSONObject,再从中提取images字段对应的JSONArray,修改后的Android侧代码如下:

@Override protected void onPostExecute(String result) {
        super.onPostExecute(result);
        if (pd.isShowing()){
            pd.dismiss();
        }
        txtJson.setText(result);
        try {
            // 先解析顶层响应对象
            JSONObject rootObj = new JSONObject(result);
            // 提取images对应的数组
            JSONArray imageArr = rootObj.getJSONArray("images");
            showGrid(imageArr);
        } catch (JSONException e) {
            e.printStackTrace();
            txtJson.setText("JSON解析异常");
        }
    }

可选优化

你可以在提取数组前增加字段存在性校验,避免接口结构调整导致的崩溃:

if (rootObj.has("images") && !rootObj.isNull("images")) {
    JSONArray imageArr = rootObj.getJSONArray("images");
    showGrid(imageArr);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:36:03