【发布时间】: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