【问题标题】:How do I fetch a JSON array from PHP to my java code?如何从 PHP 获取 JSON 数组到我的 java 代码?
【发布时间】:2022-02-27 22:53:03
【问题描述】:

我的 JSON 响应是这样的:

["item1","item2",...]

现在,我想将每个数组项添加到我的spinner

@Override
public void onResponse(Call<String> call, Response<String> response) {
    if (response.body() != null) {
       String[] arr=response.body().split(",");
       arr[0]=arr[0].replace("[","");
       arr[arr.length-1]=arr[arr.length-1].replace("]","");
       Arrays.sort(arr);
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(view.getContext(), android.R.layout.simple_spinner_item,arr);                     
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       if (qrtr_reg != null) {
          qrtr_reg.setAdapter(adapter);
       }
    }
}

我所有的微调项目都用双引号(“”),这是我不想要的。我希望它们采用对象格式。我该如何解决这个问题?

编辑:尝试了以下代码:

ArrayList<String> arr=new ArrayList<String>();
JSONArray array = null;
try {
    array = new JSONArray(response.body());
    for(int i=0;i<array.length();i++){                   
       arr.add(String.valueOf(array.getJSONObject(i).getString(0)));
    }
} catch (JSONException e) {
    e.printStackTrace();
}
Collections.sort(arr);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(view.getContext(), android.R.layout.simple_spinner_item,arr);
                        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
if (qrtr_reg != null) {
   qrtr_reg.setAdapter(adapter);
}

现在,我的陀螺完全空了!!

【问题讨论】:

  • 你检查this而不是尝试自己做json转换吗?
  • 与上面的文章不同,我获取的数组没有任何key:value 对。它只是这种格式["item1","item2",...]。这是一个索引数组
  • 既然你用的是e.printStackTrace(),那你检查logcat看看有没有报错?或者更好的是,您能否进行适当的错误处理以在 JSON 解析失败时显示错误消息?
  • 是的,我收到此错误Value item1 at 0 of type java.lang.String cannot be converted to JSONObject
  • 试试array.getString(i)

标签: java php android-studio retrofit


【解决方案1】:

您的第二段代码几乎正确。这是错误:

arr.add(String.valueOf(array.getJSONObject(i).getString(0)))

您的数组不是 JSON 对象的数组,它直接是字符串数组。因此,这条线应该是这样的:

arr.add(array.getString(i))

(我猜你是从this answer 复制了你的尝试,但是那里的问题有一个对象数组,而且你的数组要简单得多。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多