我正在尝试从我的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作为参数发送给它..这就是导致问题的原因请帮忙。
答案 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); 它对我有用。现在我可以保存我的数组中的所有值。