在textview android中显示json数组不起作用

Posted

技术标签:

【中文标题】在textview android中显示json数组不起作用【英文标题】:display json array in textview android not working 【发布时间】:2020-07-21 04:50:17 【问题描述】:

我的 JSON 数组不起作用,我不知道为什么。在日志中,它只显示:[],没有别的。我不会在文本视图中使用它。

这是我的代码:

private void account()
// get from the server
    String url = "my url";

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, null,
  new Response.Listener<JSONObject>() 
    @Override
    public void onResponse(JSONObject response) 

      try 
        JSONArray jsonArray = response.getJSONArray("uaccount");
        Log.i("conso", jsonArray.toString());

        for (int i = 0; i < jsonArray.length(); i++) 
          JSONObject employee = jsonArray.getJSONObject(i);
          Log.i("con", employee.toString());
          //Log.i("con", name+ number+status+ age+ city+ town+ gender+weight +height);

          String city = employee.getString("city");
          String town = employee.getString("town");

          txt_City.setText(""+city);
          txt_Town.append(town);
          //Log.i("co", city + town);

        
       catch (JSONException e) 
        Log.i("console.logs e:", e.toString());

        e.printStackTrace();
      
    
  , new Response.ErrorListener() 
  @Override
  public void onErrorResponse(VolleyError error) 
    Log.i("console.logs error:", error.toString());

    error.printStackTrace();
  
);

requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(request);

【问题讨论】:

请通过断点显示你的response变量内部数据 在 logcat 中?在我的日志猫响应中只显示:“uaccount”:[] 【参考方案1】:

我用 id 尝试了这段代码:

在onreate:

uAccount("3");

在方法中

  private void uAccount(final String id)
// get from server
    String url = "my url";

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, null,
  new Response.Listener<JSONObject>() 
    @Override
    public void onResponse(JSONObject response) 

      try 
        JSONArray jsonArray = response.getJSONArray("uaccount");
        Log.i("conso", jsonArray.toString());

        for (int i = 0; i < jsonArray.length(); i++) 
          JSONObject employee = jsonArray.getJSONObject(i);
          Log.i("con", employee.toString());
          //Log.i("con", name+ number+status+ age+ city+ town+ gender+weight +height);

          String city = employee.getString("city");
          String town = employee.getString("town");

          txt_City.setText(""+city);
          txt_Town.append(town);
          //Log.i("co", city + town);

        
       catch (JSONException e) 
        Log.i("console.logs e:", e.toString());

        e.printStackTrace();
      
    
  , new Response.ErrorListener() 
  @Override
  public void onErrorResponse(VolleyError error) 
    Log.i("console.logs error:", error.toString());

    error.printStackTrace();
  
)
  @Override
  protected Map<String, String> getParams() throws AuthFailureError 
    Map<String, String> params = new HashMap<>();
    params.put("id",id);

    return params;
  
;

requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(request);

【讨论】:

以上是关于在textview android中显示json数组不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android中如何让TextView显示指定的行数并且多出的部分显示省略号

如何使用快速的Android网络库在Android中显示Json结果

请问在Android中Textview换行显示问题,您如何解决?

Android TextView 限制显示行数

iOS中TextView显示HTML文本

Android TextView 常见问题与使用总结