【问题标题】:JSON not returning anything in VolleyJSON没有在Volley中返回任何东西
【发布时间】:2016-06-19 16:08:02
【问题描述】:

我正在使用 volley,目前我的 volley 没有返回任何内容。

这是我的JSON 数组回复:

{
  "forename": "Lukasz",
  "surname": "Pioetrszci"
}

在Volley 的onResponse 方法中,我有:

  JsonArrayRequest jsonArrayRequest = new JsonArrayRequest
                (URLgetUser, new Response.Listener<JSONArray>(){

                    @Override
                    public void onResponse(JSONArray jsonArray) {
                        try {
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonObject = jsonArray.getJSONObject(i);
                                forename = jsonObject.getString("forename");
                            }
                        }
                        catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }

我相信这与我只有一个事实有关

{
  "forename": "Lukasz",
  "surname": "Pioetrszci"
}

相对于

[
  {
      "forename": "Lukasz",
      "surname": "Pioetrszci"
  },
  {
      "forename": "Jack",
      "surname": "Rabin"
  },
  {
      "forename": "Anil",
      "surname": "Chopra"
  },
]

【问题讨论】:

  • 是的。大概就是这个原因。此外,您的日志猫可能应该显示一些堆栈跟踪,因为您正在捕获异常
  • LogCat 不显示任何内容,因为函数返回一个字符串。默认情况下,如果没有找到,它会返回 null
  • 使用 Postman 等 REST 客户端检查日志 cat 和响应。
  • 将您的 JSON 数据包含在 [ 和 ] 中,即使它是单个对象,也可以将其作为 JSONarray 检索。您能否提供有关数据生成方式的详细信息?
  • 如果响应只有{ "forename": "Lukasz", "surname": "Pioetrszci" },你应该使用JsonObjectRequest来代替

标签: android arrays json android-volley jsonresponse


【解决方案1】:

你必须使用

        JSONObject jsonObject = new JSONObject(reponse);
        String forename = jsonObject.getString("forename")
        String surname = jsonObject.getString("surname")

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2019-04-22
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多