将json解析的值存储为数组中的字符串

时间:2013-05-01 11:00:23

标签: android json

我有一个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中,需要在数组中获取它。请帮忙!

3 个答案:

答案 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());
                }