我将获取JSONObject的值并将其放入String Array或ArrayList中。问题是我有一个JSONObject而不是JSONArray,并且我不能更改Webservice。这是我的JSONObject:
{“ THR”:“تهران”,“ MHD”:“مشهد”,“ KIH”:“کیش”,“ IFN”:“اصفهان”,“ SYZ”:“شیراز”,“ TBZ”:“تبریز”,“ ABD“:”آبادان“}
这是我的代码:
ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressbar);
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
progressbar.setVisibility(View.VISIBLE);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "Response", Toast.LENGTH_SHORT).show();
progressbar.setVisibility(View.GONE);
try {
JSONArray array = new JSONArray(response);
Toast.makeText(getApplicationContext(), "Try", Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Catch", Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
progressbar.setVisibility(View.GONE);
}
});
queue.add(stringRequest);
当我调试代码时,它会转到CATCH !!!无论如何,它都不去尝试!
我想要这样的东西:
String[] strArray = {"تهران","مشهد","کیش","اصفهان","شیراز","تبریز","آبادان"};
我怎么才能得到它?
在您的代码中添加了更改
ProgressBar progressbar = (ProgressBar) findViewById(R.id.progressbar);
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
ArrayList<String> answersStringArray= new ArrayList<String>(); // define string array
progressbar.setVisibility(View.VISIBLE);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "Response", Toast.LENGTH_SHORT).show();
progressbar.setVisibility(View.GONE);
try {
JJSONObject jsonObject = new JSONObject(response); //cast responce to jsonObject
Iterator<?> keys = jsonObject.keys(); // get the keys of the jsonObject
while( keys.hasNext() ) {//iterrate over them
String key = (String)keys.next();
answersStringArray.add(jsonObject.optString(key));}// add the string to our array of stings
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Catch", Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
progressbar.setVisibility(View.GONE);
}
});
queue.add(stringRequest);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句