试图让json对象从php到android

时间:2013-04-29 06:25:43

标签: php android json parsing

我正在尝试从我的php脚本解析数组到我的Android应用程序。 我的android代码

public void func4(View view)throws Exception
{final String TAG_CONTACTS = "response";
    AsyncHttpClient client = new AsyncHttpClient();
    RequestParams rp = new RequestParams();
    rp.put("pLat", "SELECT officer_name FROM iwmp_officer");

    client.post("http://10.0.2.2/conc3.php", rp, new AsyncHttpResponseHandler() {
        public final void onSuccess(String response) {
            // handle your response here
            ArrayList<String> User_List = new ArrayList<String>();


            try
        {
      JSONArray jArray = new JSONArray(response.toString());
       // JSONObject jsonObject = new JSONObject(response);
      for (int i = 0; i < jArray.length(); i++)
      {
          JSONObject json_data = jArray.getJSONObject(i);



         User_List.add(json_data.getString(TAG_CONTACTS));
         String s = User_List.get(0).toString();
         tx.setText(s);
      }

         } 
            catch (Exception e)
        {
                tx.setText((CharSequence) e);
         }

        }

        @Override
        public void onFailure(Throwable e, String response) {
            // something went wrong
            tx.setText(response);
        }               
    });
}

现在我正在从我的php代码发送或ECHOing一个jSON数组,该代码被读入字符串类型的响应对象。

<?php $cars=array("Volvo","BMW","Toyota"); $arrlength=count($cars); echo json_encode($cars); exit; ?>

现在我得到的错误是 org.json.JSONException:类型为java.lang.String的0的沃尔沃值无法转换为JSONObject

我认为onSuccess func接受字符串参数并且我将json作为参数发送给它..这就是导致问题的原因请帮忙。

2 个答案:

答案 0 :(得分:1)

尝试这样

    JSONObject json = jsonParser.makeHttpRequest(url_get_contact, "GET", params);
         Log.d("All Groups: ", json.toString());
         try {
             int success = json.getInt(TAG_SUCCESS);
             if (success == 1) {
                 groups = json.getJSONArray(TAG_GROUP);
                 System.out.println("Result Success+++"+groups);
                 for (int i = 0; i < groups.length();i++) {
                 JSONObject c = groups.getJSONObject(i);
                 String name = c.getString(TAG_CONTACTS);
                 System.out.println("Checking ::"+name);
             namelist.add(name); // namelist is ur arraylist
                 }
             }else {            
                 showAlert();
             }
         } catch (JSONException e) {
             e.printStackTrace();
         }
         return null;

让我知道你的问题是否解决了......

答案 1 :(得分:0)

答案发现,我想我试图将已经将String转换的对象从json转换为字符串。 确切地说,我删除了 JSONObject json_data = jArray.getJSONObject(i); 它对我有用。现在我可以保存我的数组中的所有值。