Как отправить массив 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);

}});

2

Решение

Используйте 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);

}
1

Другие решения

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

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>
1

По вопросам рекламы [email protected]