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

Android Studio中使用Java解析JSON仅返回完整响应问题求助

问题根因
  • 你调用的目标接口返回的是单个JSON对象结构,你错误使用JSONArray类解析响应内容,直接触发JSONException异常,解析逻辑被中断,myFormattedAnimeQuote始终保持初始空值,所以最终UI展示时走了显示原始响应的分支。
  • 原有代码里的数组遍历逻辑也不适用于该接口,该单条查询接口每次只会返回1条语录数据,不需要遍历操作。
修复方案

只需要修改try代码块内的解析逻辑即可,修正后的代码如下:

public void animeCall() {
    OkHttpClient client = new OkHttpClient();
    String URL = "https://animechan.vercel.app/api/random";
    Request request = new Request.Builder()
            .url(URL)
            .build();
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            e.printStackTrace();
        }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.isSuccessful()) {
                final String myResponse = response.body().string();
                String myFormattedAnimeQuote = "";
                try {
                    // 直接解析为JSONObject,不再使用JSONArray
                    JSONObject obj = new JSONObject(myResponse);
                    String character = obj.getString("character");
                    String anime = obj.getString("anime");
                    String quote = obj.getString("quote");
                    myFormattedAnimeQuote = anime + ": " + quote + ": " + character;
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                final String myFinalQuote = myFormattedAnimeQuote;
                MainActivity.this.runOnUiThread(() -> {
                    if (!myFinalQuote.equals("")) {
                        textView.setText(myFinalQuote);
                    } else {
                        textView.setText(myResponse);
                    }
                });
            }
        }
    });
}

如果后续遇到类似解析失败的问题,可以先打印响应原始内容确认JSON结构,再选择对应的解析类处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 11:39:01