Пытаясь получить массив из php и сохранить его в java, android

Ive получил файл php, который подключается к базе данных и извлекает данные, теперь я хочу, чтобы эти данные были отправлены на мой код Java и сохранены в виде массива, для подключения к php и получения результатов. Я использую AsyncHttpClient сейчас в AsyncHttpClient, это функция func OnSucess, который принимает строковое значение в качестве своего параметра, soo все, что приходит от php, сохраняется как строка. Я хочу, чтобы это был массив. Пожалуйста, предложите мне способ, чтобы получить массив вместо строки, следующий за моим кодом.

public void func3(View view)throws Exception { AsyncHttpClient client = new AsyncHttpClient(); RequestParams rp = new RequestParams(); rp.put("pLat", "select * from iwmp_state"); client.post("http://10.0.2.2/conc2.php", rp, newAsyncHttpResponseHandler() { public final void onSuccess(Array response) { // handle your response here //tx.setText(response.toString()); } @Override public void onFailure(Throwable e, String response) { // something went wrong tx.setText(response.toString()); } }); } 

И ive получил файл php, который эхо-массива $ row

 <?php // attempt a connection $dbh = pg_connect("host=10.22.35.11 dbname=iwmp_dev2 user=postgres "); if (!$dbh) { die("Error in connection: " . pg_last_error()); } // execute query $sql = $_POST['pLat']; $result = pg_query($dbh, $sql); if (!$result) { die("Error in SQL query: " . pg_last_error()); } $array = array(); // iterate over result set // print each row while ($row = pg_fetch_array($result)) { $i++; echo $row[0]; } // free memory pg_free_result($result); // close connection pg_close($dbh); ?> 

Что php echos является массивом и что onSuccess принимает как параметр string. что делать!

Здесь я просто показываю простую демонстрацию. Вы должны обновлять согласно вашему требованию.

PHP-сторона

Создание простого PHP Array , для более подробной информации нажмите здесь

 <?php $cars=array("Volvo","BMW","Toyota"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } echo json_encode($cars); exit; ?> 

Android Side

Теперь, как читать PHP-массив внутри в android?

 String String_Response = ""; // this is your web response 

Создайте ArrayList .

  ArrayList<String> User_List = new ArrayList<String>(); try { JSONArray jArray = new JSONArray(String_Response); for (int i = 0; i < jArray.length(); i++) { JSONObject json_data = jArray.getJSONObject(i); User_List.add(json_data.getString("your_json_obj")); } } catch (Exception e) { Log.e(TAG, "" + e); } 

Также посмотрите ниже ссылку, в которой вы получите больше информации о том, как отправлять и получать данные с android на php.

Пример подключения Android + PHP

Мне трудно понять, чего вы хотите достичь, но, возможно, я могу немного помочь: Implode ваш php-массив в строку ( http://php.net/manual/en/function.implode.php ), затем в По крайней мере, вы можете увидеть, что вы возвращаете, и, возможно, перепроверить его на стороне клиента?

Получилось , что мы можем сделать, это использовать IMPLODE func в нашем php и добавлять (,) после каждого значения массива, а затем пропускать его как строку. После получения его в использовании кода Java. Split (",") func из String и хранить их в массиве.

Отлично работает для меня. Нет необходимости в json: P

Intereting Posts