java - php : reading json arraylist and saving data in mysql?

标签 java php android json retrofit2

我想将 arraylist 从 android 读取到 php 中,以便存储在数据库中,但我无法找到确切的代码为了它。有人可以指导我解决这个问题的方向吗?

这是我用于创建arraylist的java代码

private void loadCart()
{

    productList.clear();
    Cursor cursor = dbHelper.getCarProducts();
    cursor.moveToFirst();
    do {
        CartProduct cartProduct = new CartProduct();
        cartProduct.setProductName("Name: "+cursor.getString(cursor.getColumnIndex("_Name")));
        cartProduct.setProductCost("Cost: "+cursor.getString(cursor.getColumnIndex("_Cost")));
        cartProduct.setProductPrice("Price: "+cursor.getString(cursor.getColumnIndex("_Price")));
        cartProduct.setProductQuantity("Quantity: "+cursor.getString(cursor.getColumnIndex("_Quantity")));
        productList.add(cartProduct);

    }while(cursor.moveToNext());


}

我正在使用 Retrofit2 来将 arraylist 发送到服务器,但正如我在其他问题中看到的那样,我无法获取 file_get_contents 的 url ?

最佳答案

给你...

第 1 步:在 gradle.app 中添加改造依赖项

compile 'com.squareup.retrofit:retrofit:1.9.0'

第 2 步:创建一个 RestClient 类,如下所示。

public class RestClient {
    private static final String BASE_URL = DataConstants.TEST_URL; //Place your web service URL here
    private ApiInterface apiService;

    public RestClient()
    {
        RequestInterceptor requestInterceptor = new RequestInterceptor() {
            @Override
            public void intercept(RequestFacade request) {

                request.addHeader("Accept", "application/json");
            }
        };

        RestAdapter restAdapter = new RestAdapter.Builder()
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .setRequestInterceptor(requestInterceptor)
                .setEndpoint(BASE_URL)
                .build();

        apiService = restAdapter.create(ApiInterface.class);
    }

    public ApiInterface getApiService()
    {
        return apiService;
    }
}

第 3 步:为 POST URL 制作接口(interface)。

public interface ApiInterface {
    @POST("/sendData")
    void sendData(@Body JsonObject jsonObject,
                          Callback<DataModel> dataModelCallback);
}

第 4 步:创建一个 POJO 类,如下所示。

public class DataModel{
    private String success;

public String getSuccess() {
        return success;
    }

public void setSuccess(String success) {
        this.success = success;
    }

}

第 5 步:从您的 Activity 中调用 Web 服务,如下所示。

private void callWebService(String user_id) {
        try {//TODO SEND
            final Utility utility = new Utility(this);
            utility.showProgressDialog();
            JsonObject myJsonData = new JsonObject();
            myJsonData.addProperty("user_id", user_id);
            Gson gsonData = new GsonBuilder().create();
            JsonArray dataArray = new JsonArray();
            dataArray = gsonData.toJsonTree(productList).getAsJsonArray();  //Here you want to add your array list i.e productList
            myJsonData.add("assign_to", jaAssignee);

            new RestClient().getApiService().sendData(myJsonData, new Callback<DataModel>() {
                @Override
                public void success(DataModel dataModel, Response response) {
                    utility.hideProgressDialog();
                    try {
                        String success = dataModel.getSuccess();
                        if (success.equalsIgnoreCase("Success")) {
                            //Do what you want to do
                        }
                    } catch (Exception e) {
                    }
                }

                @Override
                public void failure(RetrofitError error) {
                    utility.hideProgressDialog();
                }
            });
        } catch (Exception e) {
        }
    }

希望这对您有帮助!

关于java - php : reading json arraylist and saving data in mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46231958/

相关文章:

java - 无法在 Activity 之间切换

android - imsdroid 与我的 android 应用程序的集成问题

java - 让静态方法为相同的字符串参数返回相同的实例

php - 如何将 PHP-FPM 与别名目录一起使用

java - 将 SQLite 数据库从 Android 转换为 Windows (Java)

php - 有没有办法在 php 的一次调用中发送多个 postgresql sql 准备语句?

javascript - 如何将帖子分享到 linkedin

java - 找不到 com.oracle :ojdbc14:jar:10. 4.4

java - 如何限制 JTextField 不接受超过 'x' 数量的输入

java - apache commons LinearObjectiveFunction 算法