我有一个json对象,它被收集到函数中作为字符串 它包含数组
{" officer_name":"诉M. ARORA"} {" officer_name":" Dr。 C. P. REDDY"} {" officer_name":" ARTI CHOWDHARY"} {" officer_name":" JAGDISH SINGH"}
这里是android代码
public void func4(View view)throws Exception
{
AsyncHttpClient client = new AsyncHttpClient();
RequestParams rp = new RequestParams();
rp.put("pLat", "SELECT officer_name FROM iwmp_officer");
client.post("http://10.0.2.2/conc5.php", rp, new AsyncHttpResponseHandler() {
public final void onSuccess(String response) {
// handle your response here
ArrayList<String> User_List = new ArrayList<String>();
try {
/* here I need output in an array,
and only names not the "officer_name" */
} catch (Exception e) {
tx.setText((CharSequence) e);
}
//tx.setText(User_List.get(1));
}
@Override
public void onFailure(Throwable e, String response) {
// something went wrong
tx.setText(response);
}
});
}
上面显示的输出是在String中,需要在数组中获取它。请帮忙!
答案 0 :(得分:1)
如果您得到的输出是这样的。
String outputJson=[{"officer_name":"V. M. ARORA"}{"officer_name":"Dr. C. P. REDDY"}{"officer_name":"ARTI CHOWDHARY"}{"officer_name":"JAGDISH SINGH"}]
然后是一个JSON数组。 您可以将其解析为
JsonArray array=new JsonArray(outputJson);
然后使用
循环此json数组for(JsonObject jsonObj in array){
String officerName=[jsonObj getString("officer_name");
}
您可以使用上面提到的内容上面提到的代码在语法上是不正确的,但在概念上是正确的。你可以继续这样做。
答案 1 :(得分:1)
List < String > ls = new ArrayList< String >();
JSONArray array = new JSONArray( response );
for (int i = 0; i < array.length() ; i++ ) {
JSONObject obj = array.getJSONObject(Integer.toString(i));
ls.add(obj.getString("officer_name"));
}
这样可行
答案 2 :(得分:0)
try {
JSONArray array= new JSONArray(response);
//array = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
//JSONObject obj = response.getJSONArray(i);
JSONObject jsonLineItem = (JSONObject) array.getJSONObject(i);
String name_fd = jsonLineItem.getString("officer_name");
User_List.add(jsonLineItem.getString("officer_name"));
Log.d("JSONArray", name_fd+" " +name_fd);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tx.setText( e.toString());
}