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

Android Studio中将JSON响应转为可读格式并显示到TextView的问题

解决JSON响应格式化显示到TextView的问题

你现在的问题是直接把JSON数组的原始字符串设置到TextView里,所以看起来乱糟糟的。要实现每行清晰显示一条用户的排名、用户名和分数,我们可以遍历JSON数组里的每个对象,逐个拼接成易读的字符串,最后用换行符把所有条目连起来。

修改后的代码示例

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try {
            Log.d("json", response);
            JSONObject jsonObject = new JSONObject(response);
            JSONArray jsonArray = jsonObject.getJSONArray("data");
            
            // 用来拼接最终显示的字符串,比直接用"+"拼接更高效
            StringBuilder displayText = new StringBuilder();
            
            // 遍历数组里的每一条用户数据
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonRow = jsonArray.getJSONObject(i);
                // 取出三个字段的值
                String rank = jsonRow.getString("rank");
                String username = jsonRow.getString("username");
                String score = jsonRow.getString("score");
                
                // 按自定义格式拼接,每行末尾加换行符
                displayText.append("排名").append(rank).append(": ").append(username).append(" - 分数").append(score).append("\n");
            }
            
            // 把拼接好的可读文本设置到TextView
            leaderboardView.setText(displayText.toString());
            
        } catch (JSONException e) {
            e.printStackTrace();
            // 可以在这里添加错误提示,提升用户体验
            leaderboardView.setText("排行榜加载失败,请稍后重试");
        }
    }
});

关键说明

  1. 修复了数据丢失问题:你之前的代码只取了数组里的第一个元素jsonArray.getJSONObject(0),现在通过循环遍历能把所有10条数据都处理到。
  2. 自定义显示格式:你可以根据需求调整拼接规则,比如改成"#" + rank + " " + username + " | 分数: " + score,完全适配你想要的排版。
  3. 异常处理优化:在catch块里给TextView设置错误提示,用户能直观知道加载状态,而不是只在日志里打印错误。

修改后,TextView会显示成清晰的列表格式:

排名1: DolanF - 分数4220
排名2: reyay - 分数3760
排名3: MeghanG - 分数2570
...
排名10: Joel - 分数390

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:09:30