Java 如何将JSONObject转换为字符串数组或ArrayList<;字符串>;在android中
我将获取JSONObject的值,并将其放入字符串数组或ArrayList中。问题是我有一个JSONObject而不是JSONArray,而且我不能更改Web服务。 这是我的JSONObject: {“THR”:“THR”, “MHD”:“MHD”, “KIH”:“KIH”, “IFN”:“IFN”, “SYZ”:“SYZ”, “TBZ”:“TBZ”, “阿布德”:“阿布德” 这是我的代码:Java 如何将JSONObject转换为字符串数组或ArrayList<;字符串>;在android中,java,android,arrays,jsonobject,Java,Android,Arrays,Jsonobject,我将获取JSONObject的值,并将其放入字符串数组或ArrayList中。问题是我有一个JSONObject而不是JSONArray,而且我不能更改Web服务。 这是我的JSONObject: {“THR”:“THR”, “MHD”:“MHD”, “KIH”:“KIH”, “IFN”:“IFN”, “SYZ”:“SYZ”, “TBZ”:“TBZ”, “阿布德”:“阿布德” 这是我的代码: ProgressBar progressbar = (ProgressBar) findView
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);
如何获取它?公共静态void main(字符串[]args){
public static void main(String[] args) {
//building your jsonObject(took only the 1st four ;P )
JSONObject objJsonObject = new JSONObject();
objJsonObject.put("THR", "تهران");
objJsonObject.put("MHD", "مشهد");
objJsonObject.put("KIH", "کیش");
objJsonObject.put("IFN", "اصفهان");
String [] strArray= new String[objJsonObject.length()];
int i = 0;
//adding your required data into a array
for (String key: objJsonObject.keySet()) {
strArray[i] = objJsonObject.getString(key);
i++;
}
//printing your data
for (int j = 0; j < strArray.length; j++) {
System.out.println(strArray[j]);
}
}
//构建jsonObject(仅使用前四个;P)
JSONObject objJsonObject=新的JSONObject();
objJsonObject.put(“THR”、“تهان”);
objJsonObject.put(“MHD”、“مشهد”);
objJsonObject.put(“KIH”、“ک1740;ش”);
objJsonObject.put(“IFN”、“افهان”);
String[]strArray=新字符串[objJsonObject.length()];
int i=0;
//将所需数据添加到数组中
for(字符串键:objJsonObject.keySet()){
strArray[i]=objJsonObject.getString(键);
i++;
}
//打印数据
对于(int j=0;j
希望这有助于……为代码添加了更改
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);
ProgressBar-ProgressBar=(ProgressBar)findViewById(R.id.ProgressBar);
RequestQueue=Volley.newRequestQueue(getApplicationContext());
ArrayList answersStringaray=新建ArrayList();//定义字符串数组
progressbar.setVisibility(View.VISIBLE);
StringRequest StringRequest=新建StringRequest(Request.Method.GET,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Toast.makeText(getApplicationContext(),“Response”,Toast.LENGTH\u SHORT.show();
progressbar.setVisibility(View.GONE);
试一试{
JJSONObject jsonObject=新的jsonObject(响应);//对jsonObject强制转换响应
迭代器keys=jsonObject.keys();//获取jsonObject的键
while(keys.hasNext()){//iterrate在它们上面
字符串键=(字符串)键。下一步();
add(jsonObject.optString(key));}//将字符串添加到stings数组中
}捕获(JSONException e){
e、 printStackTrace();
Toast.makeText(getApplicationContext(),“Catch”,Toast.LENGTH_LONG.show();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(getApplicationContext(),“Error”,Toast.LENGTH_SHORT.show();
progressbar.setVisibility(View.GONE);
}
});
添加(stringRequest);
对象无法强制转换到阵列您能试试吗?JSONArray数组=新的JSONArray(“[”+响应+“]));哦,不,我的JSONObject的长度太长了,这只是我JSONObject的一部分。我这样做是为了简化问题。@AlirezaNoorali我看不出JSONObject的长度在这里有多重要?你能说得更清楚吗?就你的问题而言,上面的代码提供了你所需要的。。。
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);