无法使用 Android 中未命名的 JSON 数组填充 AutocompleteTextview
Unable to populate AutocompleteTextview with unnamed JSON Array in Android
我一直在尝试使用 API 用 JSON 填充自动完成文本视图,但它不起作用,因为 JSON API 没有数组名称。如果我尝试使用其他一些确实有数组名称的 API,它工作正常。
这是 API 的示例 link。
我已经尝试实施 答案,但它不起作用。
这是API的结构。
这是我的方法。
private void populateEduList() {
List<String> responseList = new ArrayList<>();
String url = "https://autocomplete.clearbit.com/v1/companies/suggest?query=amazon";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, response -> {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++){
JSONObject object = jsonArray.getJSONObject(i);
responseList.add(object.getString("name"));
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, responseList);
mAutoCompEdu.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> {
//do something for the error
});
requestQueue.add(request);
}
我一直在使用 Volley 库来获取 JSON 并解析它。
这是答案,如果 JSON 数组没有名称,要在自动完成文本视图中获取并显示 JSON,我们必须使用 StringRequest
而不是 JsonObjectRequest
.
更新代码。
private void populateEduList() {
List<String> responseList = new ArrayList<>();
String url = "https://autocomplete.clearbit.com/v1/companies/suggest?query=amazon";
StringRequest request = new StringRequest(Request.Method.GET, url, response -> {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++){
JSONObject object = jsonArray.getJSONObject(i);
responseList.add(object.getString("name"));
Log.d("hasjkd", object.getString("name"));
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, responseList);
mAutoCompEdu.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> {
//do something for the error
});
requestQueue.add(request);
}
我一直在尝试使用 API 用 JSON 填充自动完成文本视图,但它不起作用,因为 JSON API 没有数组名称。如果我尝试使用其他一些确实有数组名称的 API,它工作正常。
这是 API 的示例 link。
我已经尝试实施
这是API的结构。
这是我的方法。
private void populateEduList() {
List<String> responseList = new ArrayList<>();
String url = "https://autocomplete.clearbit.com/v1/companies/suggest?query=amazon";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, response -> {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++){
JSONObject object = jsonArray.getJSONObject(i);
responseList.add(object.getString("name"));
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, responseList);
mAutoCompEdu.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> {
//do something for the error
});
requestQueue.add(request);
}
我一直在使用 Volley 库来获取 JSON 并解析它。
这是答案,如果 JSON 数组没有名称,要在自动完成文本视图中获取并显示 JSON,我们必须使用 StringRequest
而不是 JsonObjectRequest
.
更新代码。
private void populateEduList() {
List<String> responseList = new ArrayList<>();
String url = "https://autocomplete.clearbit.com/v1/companies/suggest?query=amazon";
StringRequest request = new StringRequest(Request.Method.GET, url, response -> {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++){
JSONObject object = jsonArray.getJSONObject(i);
responseList.add(object.getString("name"));
Log.d("hasjkd", object.getString("name"));
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, responseList);
mAutoCompEdu.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}, error -> {
//do something for the error
});
requestQueue.add(request);
}