Как отправить массив JSON, содержащий jsonobjects на php-сервер

Привет всем, мне жаль, если это было задано ранее, я искал это решение с прошлых 3 дней. Я новичок в android и php. Я хочу знать, как я могу отправить «jsonArray» (показано ниже) на мой php-сервер, а затем извлечь значения jsonobject, полученные в php. Я пробовал jsonarrayrequest и hashmap, но не смог отправить. Пожалуйста помоги.

String url="http://192.168.43.210/jjj.php"; JSONArray list; RequestQueue requestQueue; final JSONArray jsonArray=new JSONArray(); for (int i=0;i<valu;i++) { JSONObject jsonObject=new JSONObject(); try { jsonObject.put("comptext",smslist.get(i).completeText); jsonObject.put("amount",smslist.get(i).amount); jsonObject.put("txntype",smslist.get(i).txnType); jsonObject.put("party",smslist.get(i).party); jsonObject.put("from",smslist.get(i).fromNo); jsonObject.put("datetime",smslist.get(i).dateTime); jsonArray.put(jsonObject); } catch (JSONException e) { e.printStackTrace(); } } JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.POST, url, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { result.append("Successfully sent"); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }){ protected Map<JSONArray,JSONArray> getparams() throws AuthFailureError{ Map<JSONArray,JSONArray> parameters = new HashMap<JSONArray, JSONArray>(); parameters.put(list,jsonArray); return parameters; } }; requestQueue.add(jsonArrayRequest); } }); 

Solutions Collecting From Web of "Как отправить массив JSON, содержащий jsonobjects на php-сервер"

Вместо этого используйте StringRequest вместо JsonArrayRequest:

 private void register() { if (!validate()) { onRegistrationFailed("Registration Failed"); return; } final String name = et_username.getText().toString(); final String email = et_email.getText().toString(); final String phone = et_phone.getText().toString(); final String password = et_password.getText().toString(); showDialog(); StringRequest strRequest = new StringRequest(Request.Method.POST, Config.MAIN_URL + Config.REGISTER, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d(TAG, "Register Response: " + response.toString()); hideDialog(); try { JSONObject jsonObject = new JSONObject(response); int status = jsonObject.getInt("status"); String msg = jsonObject.getString("message"); if (status == SUCCESS) { onRegistrationSuccess(name,email); } else { onRegistrationFailed(msg); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "Registration Error: " + error.getMessage()); hideDialog(); Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show(); } }) { @Override protected Map<String, String> getParams() { // Posting params to register url Map<String, String> params = new HashMap<String, String>(); params.put(Config.KEY_USERNAME, name); params.put(Config.KEY_EMAIL, email); params.put(Config.KEY_PHONE, phone); params.put(Config.KEY_PASSWORD, password); return params; } }; // Adding request to request queue AppController.getInstance().addToRequestQueue(strRequest); } 

Это рабочий код для образца входа. поэтому попробуйте это и измените в соответствии с вашими потребностями.

Login.java

 package com.example.volleytest; import android.app.ProgressDialog; import android.content.DialogInterface; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; public class Login extends AppCompatActivity{ public static final String LOGIN_URL = "YOUR_URL"; //"http://192.168.1.100/Login/admin.php"; ProgressDialog pDialog; public static final String KEY_USERNAME="username"; public static final String KEY_PASSWORD="password"; private EditText editTextUsername; private EditText editTextPassword; private Button buttonLogin; private String username; private String password; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.login); editTextUsername = (EditText) findViewById(R.id.editTextUsername); editTextPassword = (EditText) findViewById(R.id.editTextPassword); buttonLogin = (Button) findViewById(R.id.buttonLogin); buttonLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(isNetworkAvailable()){ userLogin(); } else { showMessageDialog("Error", "Check your Internet Connection..!"); } } }); } private void userLogin() { username = editTextUsername.getText().toString().trim(); password = editTextPassword.getText().toString().trim(); pDialog = new ProgressDialog(this); pDialog.setMessage("Loading..."); pDialog.show(); StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL, new Response.Listener<String>() { @Override public void onResponse(String response) { try { //JSONArray myJSON= new JSONArray(response); JSONObject parentObject = new JSONObject(response); JSONObject childObject = parentObject.getJSONObject("Tracking"); String status = childObject.optString("status"); String type = childObject.optString("type"); //System.out.println("status : " + status); //System.out.println("Type : " + type); if(status.trim().equals("success")) { pDialog.hide(); showMessageDialog("Login", type + " Login Successfully..!"); } else { pDialog.hide(); showMessageDialog("Login", "No Users/Admin were Found..! "); } } catch (JSONException e) { // TODO Auto-generated catch block //e.printStackTrace(); pDialog.hide(); showMessageDialog("JSON Error", "Server Error..! Try after Some Time..!");//e.getMessage()); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { pDialog.hide(); //showMessageDialog("Login", "Reponse => " + error.toString()); showMessageDialog("Login", "Server Error..! Try after Some Time..!"); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String,String> map = new HashMap<String,String>(); map.put(KEY_USERNAME,username); map.put(KEY_PASSWORD,password); return map; } }; RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest); } public void showMessageDialog(String title , String Message) { AlertDialog dialog = new AlertDialog.Builder(Login.this) .setTitle(title) .setMessage(Message) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }) .show(); //TextView textView = (TextView) dialog.findViewById(android.R.id.message); //textView.setTextSize(25); } private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE ); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } 

}

login.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="20dp" android:text="Login Using Volley Library" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="Enter Username" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editTextUsername" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter Password" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:id="@+id/editTextPassword" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Login" android:id="@+id/buttonLogin" /> </LinearLayout>